今日内容概述:
协程、正则表达式
昨日回顾
迭代器
iter next
生成器
yield 关键字 代码执行到 yield 就会停止
next 进行解阻塞
列表推导式: a = [x for x in range(10)]
生成器表达式:把列表推导式的 [] 改成 ()
生成器函数:加了 yield 的函数
今日内容
gevent 库
踩的坑:python3.7 版本对这个库不太友好,重新换成 python 3.6.4 的32位版本。
gevent 是对 greenlet 库进行封装,greenlet 是对 yield 关键字进行封装
gevent.sleep() 在协程等待的时候,先去执行下一个任务以此来实现多任务
from gevent import monkey
monkey.patch_all() # monkey 可以把代码中所有的延时换成 gevent
gevent.joinall([]) 推荐这种方式
"""简单的爬虫,使用协程并发来下载两张斗鱼图片"""import urllib.requestimport geventfrom gevent import monkeymonkey.patch_all()def downloader(img_name, img_url): req = urllib.request.urlopen(img_url) img_content = req.read() with open(img_name, "wb") as f: f.write(img_content)def main(): gevent.joinall([ gevent.spawn(downloader, "3.jpg", "https://rpic.douyucdn.cn/appCovers/2017/09/22/1760931_20170922133718_big.jpg"), gevent.spawn(downloader, "4.jpg", "https://rpic.douyucdn.cn/appCovers/2017/09/17/2308890_20170917232900_big.jpg") ])if __name__ == '__main__': main()协程
协程依赖于线程,线程依赖于进程。进程消耗资源最大,线程其次,协程最小,正则
import re
ret = re.match(正则表达式,要匹配的数据)
ret.group() # 提取匹配出来的数据
12下一页>(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )