python下载王者荣耀英雄皮肤
王者荣耀英雄皮肤下载
王者荣耀游戏玩家很多,每个英雄有很多漂亮的皮肤.使用皮肤在游戏中有好看的加载图片,在游戏运行中也有好看的特效,在王者荣耀官网有这所有英雄的皮肤原画,喜欢的小伙伴也可以在那里下载皮肤图片做壁纸.
位置:王者荣耀英雄资料
- 在网址页面打开检查 ,谷歌浏览器,右键菜单里最后一个就是检查;
- 找到皮肤资料数据在检查中切换到network,里面都是动态加载的数据,所以当网页加载完成后切换到network里面是空的。所以我们在打开network后将网页刷新一下。在过滤器里选择xhr,在里面找到一个herolist.json的文件这里存放着英雄皮肤的数据;
- 请求herolist.json通过请求文件地址,获取储存着英雄皮肤的数据文件.`
import pprint
import requests
import re
import os
url_hero_list = 'https://pvp.qq.com/web201605/js/herolist.json
headers = {
'x-requested-with': 'XMLHttpRequest',
'referer': 'https://pvp.qq.com/web201605/herolist.shtml',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36'
}
#请求王者荣耀英雄的json数据
response = requests.get(url=url_hero_list, headers=headers)
pprint.pprint(response.json())
heros = response.json()
- 通过打印的结果,可以看出列表里每个参数都是一个英雄资料对应的字典,
- 在英雄皮肤界面点开两个英雄皮肤的原始地址
http: // game.gtimg.cn / images / yxzj / img201606 / skin / hero - info / 105 / 105 - bigskin - 3.jpg
http: // game.gtimg.cn / images / yxzj / img201606 / skin / hero - info / 538 / 538 - bigskin - 2.jpg
可以看出字典里字段"ename"就是对应英雄网址里hero-info后面的两个数字,所以可以提取出来用来构建每个英雄对应的皮肤网址。同时,每个英雄的不同皮肤由bigskin后面的数字控制。字典里的字段skin_name里就储存着对应英雄的皮肤名称,名称用“|”隔开,所以可以将对应字段取出来并且通过字符串的格式化方法将字段按|分开,从格式化后的列表里获取皮肤数量和名称`# 遍历英雄数据
f
or hero in heros:
key = 1
#提取英雄名称
cname = hero['cname']
#提取英雄对应网页地址参数
ename = hero["ename"]
try:
skin_name = hero['skin_name'].split("|")
except Exception as e:
print(e)`
- 通过够遍历出的数据,构建出每个图片的网址,请求和保存`
for skin in range(len(skin_name)):
for skin in range(len(skin_name)):
hero_url = f'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{ename}/{ename}-bigskin-{skin + 1}.jpg'
hero_response = requests.get(url=hero_url, headers=headers)
print(f"正在下载第{skin+1}张图片")
with open(f'王者皮肤\\{skin_name[skin]}{skin + 1}.jpg', mode="wb") as f:
f.write(hero_response.content)
print("皮肤下载完成")