from urllib import parse
import requests
import os
from urllib import request
# result = parse.unquote("https%3A%2F%2Fshp%2Eqpic%2Ecn%2Fishow%2F2735111614%2F1637043312%5F84828260%5F13173%5FsProdImgNo%5F8%2Ejpg%2F200")
# print(result)
url = "https://apps.game.qq.com/cgi-bin/ams/module/ishow/V1.0/query/workList_inc.cgi?activityId=2735&sVerifyCode=ABCD&sDataType=JSON&iListNum=20&totalpage=0&page=0&iOrder=0&iSortNumClose=1&iAMSActivityId=51991&_everyRead=true&iTypeId=2&iFlowId=267733&iActId=2735&iModuleId=2735&_=1637242615737"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36",
"Referer": "https://pvp.qq.com/"
}
def exact_url(data):
url_list=[]
for i in range(1,9):
url = parse.unquote(data['sProdImgNo_%d'%i]).replace('200','0')
url_list.append(url)
return url_list
def main():
result = requests.get(url,headers=headers).json()
datas = result['List']
for i,data in enumerate(datas):
url_list = exact_url(data)
name=parse.unquote(data["sProdName"])
if name=="六周年庆壁纸":
name=name+("%d"%(i-3))
dirpath=os.path.join("images",name)
os.mkdir(dirpath)
for index,image_url in enumerate(url_list):
request.urlretrieve(image_url,os.path.join(dirpath,"%d.jpg"%(index+1)))
print("%s下载完成!"%image_url)
HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 404: Not Found
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-文盲老顾 2021-11-19 08:41关注
我这边实际测试了下,代码基本没有问题,你自己捕捉下异常,看看哪个url报的404
for index,image_url in enumerate(url_list): try: request.urlretrieve(image_url,os.path.join(dirpath,"%d.jpg"%(index+1))) print("%s下载完成!"%image_url) except: print(name,image_url)
自己加上异常捕捉
网上存在着各种死链(404)、权限受限(403)、代码错误(500)等等情况,你需要自己在采集的时候只处理2xx的内容,其他都当做异常处理
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 echarts动画效果失效的问题。官网下载的例子。
- ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加