Python初级爬虫(利用多任务协程爬取虎牙MM图片)

Python多任务协程下载虎牙直播MM图片

# coding = utf-8
import re
import gevent
from gevent import monkey, pool
import time, random
import urllib.request

monkey.patch_all()


def downloader_img(img_url, img_name):
    """下载图片"""
    req = urllib.request.urlopen(img_url)
    img_content = req.read()
    # 下载图片保存
    with open(r"/home/python/Desktop/01_Python基础/day03/正则表达式/photo/mm%s" % img_name, "wb") as f:
        f.write(img_content)
        time.sleep(random.random())


def main():
    p1 = pool.Pool(10)  # 加入协程
    # 读取文件
    locals_addr = r"/home/python/Desktop/01_Python基础/day03/正则表达式/1.txt"
    url_txt = open(locals_addr, "r", encoding=" utf-8")
    url_content = url_txt.read()
    jpg_lists = re.findall(r"https://.*?\.jpg", url_content)  # 正则匹配网页的有效地址
    num = 0
    list1 = []  # 定义一个列表用来存网址
    # 遍历图片列表
    for j in jpg_lists:
        list1.append(gevent.spawn(downloader_img, j, "%d.jpg" % num))
        num += 1
    gevent.joinall(list1)


if __name__ == '__main__':
    main()

在这里插入图片描述方法
在这里插入图片描述主函数
在这里插入图片描述效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值