记录一下自己获取王者荣耀的高清皮肤图片的过程
先进入王者荣耀的官网https://pvp.qq.com/
打开F12后,点到Network那里,再按F5,然后就会看到巴拉巴拉加载出很多网络包
对herolist.json右键->Copy->Copy link address ,得到如下链接https://pvp.qq.com/web201605/js/herolist.json
把上面的链接复制到网址栏,回把json文件下载下来,我们看看这个json文件长什么样
这一步是为了获取英雄列表和英雄的数量
接下来找到官网有英雄介绍的地方,那个地方一定有高清图(目标很明确)https://pvp.qq.com/web201605/herolist.shtml
我们随便点开一个英雄,进入到英雄的介绍页面后,同样F12,找到图片
同样的,对着图片右键->Copy->Copy link address,然后将地址复制到网址栏,按回车,成功打开图片
分析地址:https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/527/527-bigskin-1.jpg
其中‘527'是英雄的编号,最后的'-1'是该英雄的皮肤编号(如果一个英雄有多个皮肤,会有-2 -3等等,你可以试试将上面地址的-1改成-2,会返回蒙恬的第二个皮肤)。到这里,浏览器上所需要的信息我们已经全部获得。
接下来我们看会刚才下载的herolist.json文件,里面有一个skin_name的字段,如果一个英雄有多个皮肤,它会以“|”分割
最后下载图片就完成,具体代码如下,可直接运行:
import urllib.request
import json
import os
response = urllib.request.urlopen("http://pvp.qq.com/web201605/js/herolist.json")
hero_json = json.loads(response.read())
hero_num = len(hero_json)
save_dir = 'D:\heroskin\\'
if not os.path.exists(save_dir):
os.mkdir(save_dir)
for i in range(hero_num):
# 获取英雄皮肤列表
skin_names = hero_json[i]['skin_name'].split('|')
for cnt in range(len(skin_names)):
save_file_name = save_dir + str(hero_json[i]['ename']) + '-' +hero_json[i]['cname']+ '-' +skin_names[cnt] + '.jpg'
skin_url = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'+str(hero_json[i]['ename'])+ '/' +str(hero_json[i]['ename'])+'-bigskin-' + str(cnt+1) +'.jpg'
print(skin_url)
if not os.path.exists(save_file_name):
urllib.request.urlretrieve(skin_url, save_file_name)