目标:
1:掌握urllib.request 第三方库的 urlopen() 方法
2:掌握给所有的 gevent 协程任务join()的方法 gevent.joinall()
3:能够使用协程实现网络图片下载
一:urllib.request 第三方库的 urlopen(url) 方法
功能:打开指定 url 的网站并且返回一个类文件,这个类文件支持一般文件的操作比如说read()、readlin()等
注意事项:类文件对象 = urllib.reques.urlopen(url)返回一个类文件,但是要对这个类文件执行read()方法才能读取到其中的数据从而实现保存文件的结果
具体功能详解:https://www.cnblogs.com/langdashu/p/4963053.html
使用步骤:
第一步:导入模块 import urllib.request
第二步:返回类文件对象,类文件对象 = urllib.reques.urlopen(url)
第三步:对这个类文件对象进行操作(读取这个文件数据) 即:类文件对象.read()等操作
图示:
二:给所有的 gevent 协程任务 join()的方法gevent.joinall()
功能:给所有指定任务的协程进行 join()
语法:gevent.joinall([协程任务1,协程任务2,协程任务3])
图示:
三:协程并发下载多种图片
原理图示:
实现并发下载器的步骤:
第一步:导入猴子补丁模块并且破解所有 即 from gevent import monkey monkey.patch()
第二步:导入urllib.request与 gevent 模块
第三步:定义down_load()函数用于下载内容
1:获取图片的类文件
2:打开本地文件写入图片的二进制文件
3…
第四步:定义 main()函数保存下载内容的 url 网站 并且调用 down_load( )函数对文件进行下载
第五步:对 down_load( )函数进行异常捕获
代码演示: