python协程爬取直播美女图片

  使用正则、协程多任务爬取虎牙海量美女图片: 

# 多任务实现下载图片
import urllib.request
import gevent
import re
from gevent import monkey

monkey.patch_all()  # gevent打补丁


# 图片下载操作
def download(img_name, img_url):
    req = urllib.request.urlopen(img_url)
    img_content = req.read()
    # 将文件放在项目下的pictures文件夹下
    with open("pictures/%s" % img_name, "wb") as f:
        f.write(img_content)


def main():
    # 读取网页中的源码内容,meinv.html是beauties网页的源码内容,我把它放在了我项目下面
    with open("meinv.html", "r", encoding='utf-8') as f:
        url_content = f.read()
    # 使用正则过滤出beauties图片的网址,保存到img_li列表中
    img_li = re.findall(r"https://huya.*?\.jpg", url_content)
    print(len(img_li))  # 打印出列表长度
    j = 0
    li = list() #创建一个空列表
    #创建所有的卵,添加到li列表中
    for i in img_li:  
        spawn = gevent.spawn(download, str(j) + ".jpg", i) 
        li.append(spawn)
        j += 1
    gevent.joinall(li) #将所有的卵放入joinall中实现多任务下载


if __name__ == '__main__':
    main()

多任务下载最明显的效果是爬取的所有图片在一瞬间同时出来 ,爬取后的效果:

猜你喜欢

转载自blog.csdn.net/qq_40808154/article/details/89288551