20行Python代码爬取LOL全英雄皮肤图片
一、前提说明
笔者是借助 "20行Python代码爬取王者荣耀全英雄皮肤"博友文章代码,对LOL官网英雄皮肤爬取进行分析与代码修改形成的该博客。
20行Python代码爬取王者荣耀全英雄皮肤:https://blog.csdn.net/qq_42453117/article/details/103190981
二、LOL官网英雄图片资源分析
1.进入LOL官网滚动条滑至英雄资料
2.进入开发者工具(F12),进行如下图操作
故我们获取英雄皮肤的入口路径为:
url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js
同时我们在开发者工具的Preview栏有如下发现,实际上也是通过资源路径需要获取的一些属性与值
2.分析与获取具体英雄皮肤资料路径
如我们先进入黑暗之女详细页面,发现同一英雄不同皮肤其网站访问路径相同
均为:https://lol.qq.com/data/info-defail.shtml?id=1
当我们进入开发者工具后,发现了同一英雄下皮肤资源的差别,如下对比
该英雄所有皮肤资源路径:https://lol.qq.com/data/info-defail.shtml?id=1
黑暗之女-安妮皮肤资源路径:https://game.gtimg.cn/images/lol/act/img/skin/big1000.jpg
哥特玫瑰-安妮皮肤资源路径:https://game.gtimg.cn/images/lol/act/img/skin/big1001.jpg
接下来我们又进入狂战士详细页面同样发现,
该英雄所有皮肤资源路径为:https://lol.qq.com/data/info-defail.shtml?id=2
狂战士-奥拉夫皮肤资源路径:https://game.gtimg.cn/images/lol/act/img/skin/big2000.jpg
烈焰猛士-奥拉夫皮肤资源路径:https://game.gtimg.cn/images/lol/act/img/skin/big2001.jpg
对比安妮我们可以得到英雄皮肤路径资源规律
三、全代码奉上
请提前将lol文件夹创建,否则可能报错,同时也请博友根据实际情况更改下载图片存放路径
import os
import requests
url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
herolist = requests.get(url) # 获取英雄列表json文件
herolist_json = herolist.json() # 转化为json格式
print(herolist_json)
heros=herolist_json['hero']
#print(heros)
hero_name = list(map(lambda x: x['title'], heros)) # 提取英雄的名字
print(hero_name)
hero_number = list(map(lambda x: x['heroId'], heros)) # 提取英雄的编号
print(hero_number)
# # 下载图片
def downloadPic():
i = 0
for j in hero_number:
print("开始下载(%s)的图片"%(hero_name[i]))
# 创建文件夹
os.mkdir("F:/Python/WorkPlace/newProject1/lol/" + hero_name[i])
# 进入创建好的文件夹
os.chdir("F:/Python/WorkPlace/newProject1/lol/" + hero_name[i])
i += 1
for k in range(15):
# 拼接url
onehero_link = 'https://game.gtimg.cn/images/lol/act/img/skin/'+'big'+j+'00'+str(k)+'.jpg'
im = requests.get(onehero_link) # 请求url
if im.status_code == 200:
open(str(k) + '.jpg', 'wb').write(im.content) # 写入文件
downloadPic()
四、下载图片展示
五、说明
由于笔者码该文时已经较晚,如有纰漏及不足处,读者可及时提出,共同修改,完善,写作不易,希望读者点赞、分享