python 下载图片

本文介绍如何使用Python脚本批量下载网页上的webp格式图片,并将其转换为jpg格式,适用于图片处理和数据采集场景。
摘要由CSDN通过智能技术生成

批量下载webp图片转为jpg

import requests
import re
import threading
import time
from PIL import Image
from io import BytesIO

def dis(iter):
    for it in iter:
        print(it)

def get(pho_url,i):
    html=requests.get(pho_url)
    byte_stream = BytesIO(html.content)
    im = Image.open(byte_stream)
    if im.mode == "RGBA":
        im.load()  # required for png.split()
        background = Image.new("RGB", im.size, (255, 255, 255))
        background.paste(im, mask=im.split()[3])  
    #name = md5_(url)
    im.save(f'2/{i}.jpg', 'JPEG')
    im.close()
    
url='https://stock.tuchong.com/topic?topicId=50045&from=Adobe%E7%8B%AC%E5%AE%B6'
headers={
    'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
    }

html=requests.get(url)
k=r'"image_id":"(?P<id>.*?)"'
ids=re.findall(k,html.text,re.S)

base_url='https://cdn6-banquan.ituchong.com/weili/smh/{}.webp'

urls=[]

for pos,pho_url in enumerate(ids):
    urls.append(base_url.format(pho_url))
    if (pos+1)%5==0 or len(ids)==pos+1:
        thread=[]
        for i in range(5):
            try:
                thread.append(threading.Thread(target=get,args=(urls[i],str((pos+1)/5*5-4+i),)))
            except:
                break
        for i,it in enumerate(thread):
            it.start()
            print('正在下载:',str((pos+1)/5*5-4+i)+'.jpg')
            #time.sleep(1)
        for it in thread:
            it.join()
        urls.clear()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值