# -*- coding: utf-8 -*-# @Time : 2022/11/10 15:13# @Author : 红后# @Email : not_enabled@163.com# @blog : https://www.cnblogs.com/Red-Sun# @File : coroutines.py# @Software: PyCharmimport requestsdef coroutines_spider(): ''' 子生成器(PS: 打工仔,真正干活的) ''' response = None # 首次激活返回None,后期网页响应覆盖 while True: url = yield response response = requests.get(url)def appoint(): ''' 委派生成器,委托子生成器完成具体任务 (PS: 类似包工头负责劳务派遣) ''' while True: yield from coroutines_spider() # 建立子生成器和主函数的双通道def main(url_list: list): ''' 主函数(PS: 相当于老板,张贴招人启示) ''' ul = appoint() # 创建委派生成器 next(ul) # 激活它 for url in url_list: response = ul.send(url) # 将url作为参数传递进入子生成器中,返回子生成器yield出来的response print(response.url, response.status_code) # 打印出response中的链接和状态码if __name__ == '__main__': url_list = ['https://www.baidu.com/', 'https://www.4399.com/', 'https://cn.bing.com/', ] main(url_list=url_list
【Python用yield form 实现异步协程爬虫】
经验总结扩展阅读
- 2022年Python顶级自动化特征工程框架?
- C++ 中指针常量、指向常量的指针、引用类型的常量
- 桂花的吃法
- 食用葡萄糖是糖吗
- 微信用过的小程序怎么找回 使用过小程序怎么找回
- qq的曾用名怎么看 怎么看自己的qq曾用名
- 苡字用于人名的寓意
- 适合上班用上签名搞怪 又是打工人的周一签名
- 硫磺皂洗头多久一次
- 从头酷到脚的用了舍不得换的签名 去做自己吧超酷的