使用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()
相关推荐
轻竹办公PPT21 小时前
AI 自动生成 2026 年工作计划 PPT,哪种更接近可交付
人工智能·python·powerpoint
dagouaofei21 小时前
2026 年工作计划 PPT 框架怎么搭?AI 一步完成
python·powerpoint
zhongtianhulian21 小时前
江苏物联网平台价格解析:5大方案报价与选型指南,助您精准控制
python
net3m3321 小时前
websocket下发mp3帧数据时一个包被分包为几个子包而导致mp3解码失败而播放卡顿有杂音或断播的解决方法
开发语言·数据库·python
java1234_小锋21 小时前
[免费]基于Python的天气预报(天气预测分析)(Django+sklearn机器学习+selenium爬虫)可视化系统【论文+源码+SQL脚本】
爬虫·python·selenium·天气预报·天气预测
Qhumaing21 小时前
解决因为jupyter notebook修改路径下没有c.NotebookApp.notebook_dir而无法修改目录问题
ide·python·jupyter
38242782721 小时前
python3网络爬虫开发实战 第2版:使用aiohttp
开发语言·爬虫·python
dagouaofei21 小时前
写 2026 年工作计划,用 AI 生成 PPT 哪种方式更高效
人工智能·python·powerpoint
Hello.Reader21 小时前
Flink ML OneHotEncoder 把类别索引变成稀疏 one-hot 向量
python·机器学习·flink
我想吃烤肉肉1 天前
关于Python的垃圾回收
python