目标:

    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()等操作


    图示:

    image.png

    二:给所有的 gevent 协程任务 join()的方法gevent.joinall()

    功能:给所有指定任务的协程进行 join()
    语法:gevent.joinall([协程任务1,协程任务2,协程任务3])

    图示:

    image.png

    三:协程并发下载多种图片

    原理图示:

    image.png

    实现并发下载器的步骤:

    第一步:导入猴子补丁模块并且破解所有 即 from gevent import monkey monkey.patch()
    第二步:导入urllib.request与 gevent 模块
    第三步:定义down_load()函数用于下载内容
    1:获取图片的类文件
    2:打开本地文件写入图片的二进制文件
    3…
    第四步:定义 main()函数保存下载内容的 url 网站 并且调用 down_load( )函数对文件进行下载
    第五步:对 down_load( )函数进行异常捕获

    代码演示:

    image.png