源码在底下
端游网页链接 :英雄联盟全新官方网站-腾讯游戏
1、点击资料库
2、按F12进入开发者模式并刷新,在搜索框里输入js回车
找到hero_list.js,这个里面存储着所有的英雄信息
点击hero_list.js,在preview里面就能看到储存的信息
3 、随机点一个英雄进去,在这里我选择的是安妮
然后按F12进入开发者模式并刷新
4、在搜索框里输入js并找到标注的地方
点击进去,我们就可以发现安妮的所有皮肤信息都存储在skins里面
通过测试我们发现皮肤的大图在mainimg里面
5、整理思路
先看一下1.js的网页链接,我们多看几个英雄就可以发现这个链接构成只有hero/后的数字不同,剩下的全部都是相同的,通过对比hero_list.js,我们就可以发现这个数字就是hero_list里面的heroId。
因此,我们先通过hero_list.js提取出所有英雄的heroid以及name,然后通过添加heroid构成每个英雄储存皮肤信息的链接,再提取出所有的图片
6、源代码
import requests
import os
import json
url = "https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js?ts=2755589"
response = requests.get(url).text
#将获取到的网页信息转化为json格式
html = json.loads(response)
listHero = html['hero']
#计数器
sum = 0
#提取信息
for i in listHero:
heroNumber = i['heroId']
heroName = i['name']
#一个英雄创建一个文件夹
h = "F:\\lolComputer_img\\"+heroName+r"\\"
if not os.path.exists(h):
os.makedirs(h)
#构建每个英雄的皮肤图片链接
imgText = "https://game.gtimg.cn/images/lol/act/img/js/hero/"+heroNumber+".js?ts=2755591"
imgResponse = requests.get(imgText).text
#转化为json格式
imgHtml = json.loads(imgResponse)
img_url = imgHtml['skins']
#提取信息
for i in img_url:
'''
皮肤的大图储存在mainImg中,但是有的炫彩皮肤并没有大图,而是小图标的形式存在的。
所以需要判断mainImg是否是空的。如果是则跳过
'''
if i['mainImg'] != "":
img = requests.get(i['mainImg']).content
#将图片写入文件夹中
with open(h+i['name'].replace("/","")+'.jpg','wb') as f:
f.write(img)
#计数
sum = sum+1
print(sum,i['name'],"下载成功!")
else:
pass
print("下载完成!")
7、成果