实用Python是如何爬取英雄联盟(lol)全部皮肤,涨知识了

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

小二:“唉!别提了,还不是最近又接触了一个叫英雄联盟的游戏,游戏中很多皮肤都需要花钱买,但是我钱不够呀...”

小三:“咋啦,钱攒够了你还要买呀?还吃不吃饭了?!要我说,你干脆将英雄的炫彩皮肤都爬下来欣赏一下得了,饭钱还给你省下了。”

小二:“你说的也对,毕竟吃饭更重要,那我还是爬取皮肤欣赏一下算了。”

首先,我们打开英雄联盟官网主页,网址为:https://lol.qq.com/main.shtml,然后向下拉,可以看到英雄列表,如图所示:

接着随意选一个英雄点击进入看一下,如图所示:

再点击鼠标右键,接着选择检查,看一下皮肤的 URL,如图所示:
悄悄地告诉你一个网站https://jq.qq.com/?_wv=1027&k...

通过观察,可以发现英雄皮肤 URL 组成方式为:https://game.gtimg.cn/images/... + 英雄id + 皮肤id.jpg。

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

图片

再选择Response项看一下相应数据,如图所示:

图片

我们可以看到数据都显示在了一行,看着不太方便,我们将其格式化看一下,如图所示:

图片

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

image

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

图片

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

image

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

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

图片

总结:python是一门近十年很火的编程语言,lol皮肤是用python爬虫所在网页端爬取的,有着简单的是咧告诉python是多么强大.

 
 
posted @ 2021-01-07 19:03  欣欣雪  阅读(299)  评论(0编辑  收藏  举报