使用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()
相关推荐
Groundwork Explorer1 小时前
W5500 网卡编程初始化与使用指南
python·单片机
逸Y 仙X2 小时前
MCP(模型控制协议)完全指南:从核心概念到实战开发
python·大模型·llm·ai编程·mcp
WILLF2 小时前
前端视角:Python requests vs JS axios
前端·python
哒哒哒5285202 小时前
69. Python: 核心语法-面向对象基础-案例(教务系统)
python
何以解忧,唯有..3 小时前
Python 中获取目录操作完全指南
windows·python·microsoft
南京云森杉木桩3 小时前
常见打桩木品牌推荐,选对材质让工程更稳固
人工智能·python·材质
RisunJan3 小时前
Linux命令-whoami(显示当前有效用户名)
linux·运维·chrome
总有刁民想爱朕ha3 小时前
Python PyQt5图片批量转MP4视频工具:本地离线免费无水印,完整代码
开发语言·python·qt
zyj8890913 小时前
濮阳工厂目视化设计安全警示牌材质怎么选耐用
python·安全·材质
宸津-代码粉碎机3 小时前
FastUtil+AI多Agent实战:Java AI项目性能终极加速方案
java·服务器·开发语言·python·安全·php