import requests # 网络请求库,用于请求网页并获取数据
import jsonpath # 筛选json数据
import os # 系统模块
def lol():
# js文件
url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
User_Agent = '' # 此处需要通过开发者工具的Network以下的Headers复制User-Agent使用
# 构建请求头
headers = {
'User_Agent': User_Agent
}
# 请求数据
response = requests.get(url, headers=headers).json()
# print(response)
# 筛选数据
hero_ids = jsonpath.jsonpath(response, '$..heroId') # 英雄id
# print(hero_ids)
hero_names = jsonpath.jsonpath(response, '$..name') # 英雄名字
# print(hero_names)
for hero_id, hero_name in zip(hero_ids, hero_names):
# 链接
hero_info_url = 'https://game.gtimg.cn/images/lol/act/img/js/hero/{}.js'.format(hero_id)
# print(hero_info_url)
hero_info = requests.get(hero_info_url).json()
# print(hero_info)
skin_info_list = hero_info['skins'] # 皮肤数据
# print(skin_info_list)
skin_id_list = jsonpath.jsonpath(skin_info_list, '$..skinId') # 获取皮肤id
# print(skin_id_list)
skin_name_list = jsonpath.jsonpath(skin_info_list, '$..name') # 获取皮肤名字
# print(skin_name_list)
# 新建角色名称文件夹,将爬取的图片分类保存在英雄的文件夹内
if not os.path.exists(hero_name):
os.mkdir(hero_name)
for skin_id, skin_name in zip(skin_id_list, skin_name_list):
url1 = 'https://game.gtimg.cn/images/lol/act/img/skin/big' + skin_id + '.jpg'
# 请求拼接后的图片数据
image = requests.get(url1)
# 返回404则不会保存
if image.status_code == 200:
with open('./' + hero_name + '/' + skin_name + '.jpg', 'wb') as file:
file.write(image.content)
print('<%s>下载成功' % skin_name)
lol()
开始运行代码后Console会有以下内容
在py文件同级目录下会将爬取内容进行保存
点开每个英雄文件夹下就可以看见保存的图片