如何用Python爬取英雄联盟,lol全部皮肤

技术如何用Python爬取英雄联盟,lol全部皮肤今天就跟大家聊聊有关如何用Python爬取英雄联盟(lol)全部皮肤,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获

今天就和大家聊聊如何用Python抓取英雄联盟(lol)的所有皮肤,可能很多人都不太懂。为了让大家更好的了解,边肖为大家总结了以下内容,希望大家能从这篇文章中有所收获。

小三:“怎么了,小二?一副无精打采的样子!”

小二:“唉!别提了。我最近接触到一款游戏,叫做英雄联盟。游戏中很多皮肤需要用钱买,但是我没有足够的钱……”

小三:“怎么,攒够钱还要买?你吃过了吗?我想说,你干脆爬下英雄的彩皮好好享受,省下吃饭的钱。”

小二:“你说得对,毕竟吃饭更重要,我还是扒着皮享受吧。”

首先我们打开英雄联盟官网的首页,网站是:https://lol.qq.com/main.shtml,然后下拉看到英雄榜,如图:

如何用Python爬取英雄联盟(lol)全部皮肤

然后随意选择一个英雄,点击看一下,如图:

如何用Python爬取英雄联盟(lol)全部皮肤

再次点击鼠标右键,然后选择检查,查看皮肤的网址,如图:

如何用Python爬取英雄联盟(lol)全部皮肤

通过观察可以发现,英雄皮肤网址的组成是:https://game.gtimg.cn/images/lol/act/img/skin/big英雄id皮肤id.jpg。

我们先看皮肤id,也就是皮肤的数量,选择开发者工具的Network项,然后刷新页面,可以发现有一个对17.js的请求,其实就是英雄id,如图:

如何用Python爬取英雄联盟(lol)全部皮肤

选择响应项查看相应的数据,如图所示:

如何用Python爬取英雄联盟(lol)全部皮肤

我们可以看到数据显示在一行,不方便看。让我们将其格式化并查看一下,如图所示:

如何用Python爬取英雄联盟(lol)全部皮肤

通过观察可以发现,获取指定英雄皮肤id的URL是https://game.gtimg.cn/images/lol/act/img/js/hero/英雄id.js获取皮肤id和下载皮肤图片的代码如下:

hero _ skin _ URL=' https://game . gtimg.cn/images/lol/act/img/js/hero/' hero _ IDN bsp

;+ '.js'
# 通过 url 获取英雄的皮肤数量
skin_text = requests.get(hero_skin_url).text
skin_json = json.loads(skin_text)
skin_list = skin_json['skins']
# 获取皮肤名
hero_skins.clear()
for skin in skin_list:
    hero_skins.append(skin['name'].replace('/', '').replace('\\', '').replace(' ', ''))
# 皮肤数量
skins_num = len(hero_skins)
s = ''
for i in tqdm(range(skins_num), desc='【' + hero_name + '】皮肤下载'):
    if len(str(i)) == 1:
        s = '00' + str(i)
    elif len(str(i)) == 2:
        s = '0' + str(i)
    elif len(str(i)) == 3:
        pass
    try:
        # 拼接指定皮肤的 url
        skin_url = 'https://game.gtimg.cn/images/lol/act/img/skin/big' + hero_id + '' + s + '.jpg'
        img = requests.get(skin_url)
    except:
        # 没有炫彩皮肤 url 则跳过
        continue
    # 保存皮肤图片
    if img.status_code == 200:
        with open(hero_skins[i] + '.jpg', 'wb') as f:
            f.write(img.content)

 

现在就差英雄id参数的获取了,我们接着看如何获取全部的英雄id,返回到 https://lol.qq.com/main.shtml页面,打开开发者工具并选择Network,然后刷新页面,我们可以观察到有一个hero_list.js的请求,如图所示:

如何用Python爬取英雄联盟(lol)全部皮肤

皮肤id的获取基本类似,通过这个请求就可以获取到全部英雄id,代码实现如下:

url = 'https://game.gtimg.cn/images/lol/act/img/js/heroList/hero_list.js'
hero_text = requests.get(url).text
# 转为 json 格式
hero_json = json.loads(hero_text)['hero']
path = os.getcwd()
# 获取当前文件夹路径
workspace = os.getcwd()
# 皮肤路径
skin_path = "{}\\{}".format(workspace, 'skins')
# 遍历列表
for hero in hero_json:
    # 将每一个英雄的 id、name 放入一个字典中
    hero_dict = {'id': hero['heroId'], 'name': hero['name']}
    # 放入列表
    heros.append(hero_dict)

 

我们可以看出:代码中除了英雄id,还获取了英雄name,并将每一个英雄的idname放在了一个字典中,又将所有英雄对应的字典放在了列表中。

最后,我们看一下下载效果:

如何用Python爬取英雄联盟(lol)全部皮肤

看完上述内容,你们对如何用Python爬取英雄联盟(lol)全部皮肤有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/49730.html

(0)

相关推荐

  • 如何进行linux后台运行及关闭和查看后台任务

    技术如何进行linux后台运行及关闭和查看后台任务这篇文章将为大家详细讲解有关如何进行linux后台运行及关闭和查看后台任务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年10月22日
  • JAVA工具如何将一个list均分成n个list

    技术JAVA工具如何将一个list均分成n个list这篇文章将为大家详细讲解有关JAVA工具如何将一个list均分成n个list,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了

    攻略 2021年10月23日
  • Python语法举例分析

    技术Python语法举例分析这篇文章主要介绍“Python语法举例分析”,在日常操作中,相信很多人在Python语法举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python语法举

    攻略 2021年11月20日
  • Python如何实现我的世界游戏

    技术Python如何实现我的世界游戏这篇文章主要介绍Python如何实现我的世界游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.准备开始之前,你要确保Python和pip已经成功安装在电脑上

    攻略 2021年11月9日
  • JAVA GC日志的相关知识有哪些

    技术JAVA GC日志的相关知识有哪些本篇内容主要讲解“JAVA GC日志的相关知识有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JAVA GC日志的相关知识有哪些”吧

    攻略 2021年11月19日
  • 杯弓蛇影的意思是,形容水中倒影的成语有哪些

    技术杯弓蛇影的意思是,形容水中倒影的成语有哪些水中倒影杯弓蛇影的意思是,并不是影子。影子是由于光的直线传播,当光线遇到不透明的物体时,在物体后面形成的黑暗区域。而水中倒影是光的反射现象,当物体射出的光线射到水面上时,被水

    生活 2021年10月27日