使用requests包批量下载网页图片

使用requests包获取respons请求对象,通过接口获取json字符串,对字符串处理后得到图片url,再使用多线程下载

python 复制代码
# 并发编程 ------ 多线程 、 多进程 、 异步编程
from concurrent.futures import ThreadPoolExecutor
import requests
# 唯一标识符
import uuid

def downLoad(url='https://image.so.com/zjl?sn=0&ch=car', page=0):
    # 最大进程数
    pool = ThreadPoolExecutor(max_workers=16)
    spliturl = url.split('?')
    for p in range(page + 1):
        # 拼接页数
        newUrl = spliturl[0] + '?' + f'sn={p}' + spliturl[1]
        # 得到response请求对象
        resp = requests.get(url=newUrl)
        # 将获取的json字符串处理成字典
        json_dict = resp.json()
        # 获取list键对应的值
        list_dict = json_dict['list']
        # 获取图片url,并使用多线程下载
        for i in range(len(list_dict)):
            qhimg_url = list_dict[i]['qhimg_url']
            # savePic(qhimg_url, getPicName('C://Users/小碧宰治/Desktop/cars'))
            pool.submit(savePic, qhimg_url, getPicName('C://Users/小碧宰治/Desktop/cars'))
        pool.shutdown()

def getPicName(savedir):
    """保存位置"""
    return f'{savedir}/{uuid.uuid1().hex}.jpg'

def savePic(url, savedir):
    """写图片并保存"""
    # 写二进制
    with open(savedir, mode='wb') as file_obj:
        resp = requests.get(url=url)
        file_obj.write(resp.content)

downLoad()
相关推荐
cnxy18816 小时前
Python爬虫进阶:反爬虫策略与Selenium自动化完整指南
爬虫·python·selenium
用户83562907805117 小时前
Python 实现 Excel 条件格式自动化
后端·python
深蓝电商API18 小时前
Scrapy管道Pipeline深度解析:多方式数据持久化
爬虫·python·scrapy
噎住佩奇18 小时前
(Win11系统)搭建Python爬虫环境
爬虫·python
basketball61618 小时前
python 的对象序列化
开发语言·python
rgeshfgreh18 小时前
Python流程控制:从条件到循环实战
前端·数据库·python
luoluoal18 小时前
基于python大数据的电影市场预测分析(源码+文档)
python·mysql·django·毕业设计·源码
幻云201018 小时前
Python深度学习:从入门到实战
人工智能·python
Zoey的笔记本19 小时前
敏捷与稳定并行:Scrum看板+BPM工具选型指南
大数据·前端·数据库·python·低代码
开开心心就好20 小时前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节