如何用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)

相关推荐

  • 怎么进行mysql量级数据表的分页优化

    技术怎么进行mysql量级数据表的分页优化怎么进行mysql量级数据表的分页优化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Limit分页

    攻略 2021年10月25日
  • 使用了索引查询还是慢的原因是什么

    技术使用了索引查询还是慢的原因是什么本篇内容介绍了“使用了索引查询还是慢的原因是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够

    攻略 2021年10月22日
  • ThreadPoolExecutor线程池的示例分析

    技术ThreadPoolExecutor线程池的示例分析小编给大家分享一下ThreadPoolExecutor线程池的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获

    攻略 2021年11月17日
  • go module是如何使用本地包的

    技术go module是如何使用本地包的小编给大家分享一下go module是如何使用本地包的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!g

    攻略 2021年11月27日
  • AppBuilder的优势有哪些

    技术AppBuilder的优势有哪些这期内容当中小编将会给大家带来有关AppBuilder的优势有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。没有多余的代码不必担心Openbiz

    攻略 2021年11月26日
  • Windows下怎么安装Frida环境

    技术Windows下怎么安装Frida环境今天就跟大家聊聊有关 Windows下怎么安装Frida环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Window

    攻略 2021年10月23日