原因:前两天在公众号上看到一篇关于王者荣耀爬取皮肤的文章,但是内容太笼统,就跟着看了,绝对不可能。我打算自己做。
我之前接触爬虫的经历是几年前爬取豆瓣电台歌曲的时候。当年用的是C++,解析json需要第三方库,非常繁琐。最近接触了Python,深深的感受到它是一门非常好的语言。
下面开始正题。如何抓取王者荣耀中英雄皮肤的照片?
它分为两个步骤。
找到皮肤照片的地址
下载图片
1.找到皮肤图片地址1.1 找到英雄列表
访问百度《王者荣耀》官网,输入https://pvp.qq.com/,按F12进入调试界面,按F5刷新界面。图中显示的herolist.json文件是英雄列表。如果需要英雄编号、英雄名称、英雄类型、皮肤名称等信息,右键该文件,复制链接http://pvp.qq.com/web202305/js/herolist.json。
接下来,我们来看看结果。
上面的代码会读取英雄列表并存储到hero_json中,运行效果如下图所示。
1.2 查找英雄皮肤地址
点击首页“游戏信息”选项卡进入新界面,点击英雄头像进入英雄信息界面。这里我们以孙尚香为例。
同样,按F12,然后按F5,将鼠标移到孙尚香的皮肤上,就会弹出调试窗口。
一共展示了6款孙尚香的高分辨率皮肤。同样,右键第一个皮肤,复制链接即可获取http://game.gtimg.cn/images/yxzj/img202306/skin/hero-info/。 111/111-bigskin-1.jpg,这是我们梦想中的英雄皮肤的链接。
请分析这个链接。 “111”是英雄编号,最后一个“1”是英雄皮肤编号。此时,浏览器不再有用,您已拥有所需的所有信息。
2. 下载图片2.1 主角有多少款皮肤?
第一步获取的herolist.json文件中有一个“skin_name”字段。只需解析该字段即可获取皮肤编号和皮肤名称。测试代码(接代码片段1)如下:
执行结果如下。
可以看到廉颇一共有两款皮肤,皮肤名称分别是争议爆和地狱岩魂。
2.2 下载文件
urlretrieve接口用于下载文件。测试代码如下:
让我们看看结果:
截至目前,224款皮肤已全部下载完毕,全部附有高分辨率照片。
还没结束。该方案存在一些不完善之处。
如果路径D:\\herolist\\不存在,则程序无法运行。
如果下载失败,请再次运行程序,下载的镜像将会重新下载。
解决了:
1. 检查文件夹是否存在,不存在则创建。这是代码:
2. 检查文件是否存在,如果存在则跳过下载。这是代码:
至此工作就完成了。这是完整的代码:
除去注释和空行,一共16行代码,实现了下载王者荣耀所有皮肤的功能。这些皮肤也可以用作您的桌面背景。尝试一下:
本文和图片来自网络,不代表火豚游戏立场,如若侵权请联系我们删除:https://www.huotun.com/game/645650.html