[python爬虫实例]批量下载荣耀皮肤

该代码段用于从特定URL批量下载不同尺寸的图片,用户可以选择1024*768到1920x1440共7种尺寸中的一种。程序利用requests库获取页面源代码,通过正则表达式解析出图片地址和名称,然后使用urllib库下载图片到本地'king'文件夹中。
摘要由CSDN通过智能技术生成

在这里插入图片描述

完整代码

  • 以每张图片含7种可选尺寸为线索
import requests # pip install requests
import re
import urllib.parse
from urllib import request

print('[2]1024*768\t\t[3]1280x720\t\t[4]1280x1024\t\t[5]1440x900\t\t[6]11920x1080\t\t[7]1920x1200\t\t[8]1920x1440\t\t')
size = input('请在以上尺寸中选择一项并输入括号内数字')

# 八种尺寸
# requests库 拿到页面源代码
# 获取图片地址
# 使用ulretrieve拿下图片
# 爬数据 最好的方法是一个url地址返回所有所需数据

for x in range(25):
    url = 'https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=4&totalpage=0&page=' + str(x) + '&iOrder=0&iSortNumClose=1&jsoncallback=jQuery171021125452438458137_1625972205037&iAMSActivityId=51991&_everyRead=true&iTypeId=1&iFlowId=267733&iActId=2735&iModuleId=2735&_=1625972205095'
    # print(url)
    response = requests.get(url)
    print(response.text)
    data = response.content.decode('utf-8') #二进制 手动解码
    imgSize = {'2':'sProdImgNo_2', '3':'sProdImgNo_3', '4':'sProdImgNo_4', '5':'sProdImgNo_5', '6':'sProdImgNo_6', '7':'sProdImgNo_7', '8':'sProdImgNo_8'}
    # 获取所有指定尺寸的地址
    sizeList = re.findall('"'+imgSize[size]+'":"(.*?)"',data)#http%3A%2F%2Fshp%2Eqpic%2Ecn%2Fishow%2F2735070109%2F1625101443%5F84828260%5F32124%5FsProdImgNo%5F2%2Ejpg%2F200
    #获取所有图片的名字
    nameList = re.findall('"sProdName":"(.*?)"',data)
    # print(sizeList) 列表
    for x in range(0,len(sizeList)):
        imgurl = urllib.parse.unquote(sizeList[x]).replace('/200', '/0') #对图片地址解码并保存
        # print(imgur1)
        imgName = urllib.parse.unquote(nameList[x]) # 对图片名字解码并保存
        print('正在下载' + imgName + 'jpg')
        request.urlretrieve(imgurl, 'king/'+imgName+'.jpg') #king文件夹需先手动添加
        request.urlcleanup() #清除缓存
        print(imgName + '.jpg下载完毕')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值