欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

20行Python代码爬取LOL全英雄皮肤图片

程序员文章站 2022-04-30 18:25:35
...

 

一、前提说明
       笔者是借助 "20行Python代码爬取王者荣耀全英雄皮肤"博友文章代码,对LOL官网英雄皮肤爬取进行分析与代码修改形成的该博客。
20行Python代码爬取王者荣耀全英雄皮肤:https://blog.csdn.net/qq_42453117/article/details/103190981

二、LOL官网英雄图片资源分析

1.进入LOL官网滚动条滑至英雄资料

20行Python代码爬取LOL全英雄皮肤图片

2.进入开发者工具(F12),进行如下图操作

20行Python代码爬取LOL全英雄皮肤图片

故我们获取英雄皮肤的入口路径为:

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

20行Python代码爬取LOL全英雄皮肤图片

当我们进入开发者工具后,发现了同一英雄下皮肤资源的差别,如下对比
该英雄所有皮肤资源路径: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

20行Python代码爬取LOL全英雄皮肤图片

接下来我们又进入狂战士详细页面同样发现,
该英雄所有皮肤资源路径为: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()

四、下载图片展示

20行Python代码爬取LOL全英雄皮肤图片

五、说明

由于笔者码该文时已经较晚,如有纰漏及不足处,读者可及时提出,共同修改,完善,写作不易,希望读者点赞、分享