查看原文
其他

喜欢玩荣耀的有福了,用 Python 获取全英雄皮肤

派森酱 Python技术 2022-09-11

文 | 極光

来源:Python 技术「ID: pythonall」


很多朋友都喜欢玩王者荣耀,也很喜欢里面的英雄和各种风格的皮肤,而今天为大家介绍的,就是如果用 Python 一键获取全英雄的皮肤图片,保存到电脑上,用来做背景图片循环切换,是不是也很美……

安装模块

这里需要安装以下模块,当然如果已安装就不用再装了:

# 安装引用模块pip3 install bs4pip3 install requests

分析获取

先打开王者荣耀官网英雄介绍页面(http://pvp.qq.com/web201605/herolist.shtml),在这个页面列出了所有的英雄,然后打开 Chrome 开发者工具,刷新后在 Network 看到如下图请求 url,会返回包含所有英雄信息的 Json 串。

把这个 Json 文件下载下来,我们可以看到里面的内容如下:

然后当我们点击某个英雄进到详细介绍页面,会看到以这个英雄各种皮肤的图片,再次打开开发者工具,在源码里找到皮肤图片对应的 url,如下图所示:

通过查看多个皮肤,我们可以发现这个 url(http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/531/531-bigskin-2.jpg)是有规律的变化,可以看出 url 中数字531对应的就是上面 json 文件中的 ename,而其中 531-bigskin- 后面的数字,则对应的是第几个皮肤。

好了,找到了规律,剩下就好办了,因为这个用代码实现一点也不复杂。

代码实现

直接上代码吧,我已经在代码里加了注释如下:

# get_heros.py# 引入模块import requestsimport jsonimport osimport time
#程序开始时间st = time.time()url = 'http://pvp.qq.com/web201605/js/herolist.json'# 获取 json 内容response=requests.get(url).content
# 提取 Json 信息jsonData=json.loads(response)# 打印查看print(jsonData)
# 初始化下载数量x = 0
hero_dir='/Users/mm/python/python-examples/heros/imgs/'#目录不存在则创建if not os.path.exists(hero_dir): os.mkdir(hero_dir)
for m in range(len(jsonData)): # 英雄编号 ename = jsonData[m]['ename'] # 英雄名称 cname = jsonData[m]['cname'] # 皮肤名称,一般英雄会有多个皮肤 skinName = jsonData[m]['skin_name'].split('|') # 皮肤数量 skinNumber = len(skinName)
# 循环遍历处理 for bigskin in range(1,skinNumber+1): # 拼接下载图片url picUrl = 'http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/'+str(ename)+'/'+str(ename)+'-bigskin-'+str(bigskin)+'.jpg' #获取图片内容 picture = requests.get(picUrl).content # 保存图片 with open( hero_dir + cname + "-" + skinName[bigskin-1]+'.jpg','wb') as f: f.write(picture) x=x+1 print("当前下载第"+str(x)+"张皮肤")# 获取结束时间end = time.time()# 计算执行时间exec_time = end-stprint("找到并下载"+str(x)+"张图片,总共用时"+str(exec_time)+"秒。")

代码写好,接下我们执行命令 python get_heros.py 运行程序,就会看到皮肤图片已经瞬间下载到了电脑里。

下载完成的皮肤图片:

总结

本文为大家介绍了如何通过 Python 实现王者荣耀全英雄皮肤图片的下载,喜欢玩游戏的朋友们,以后再也不用愁没有图片做桌面壁纸了,如果你喜欢记得点在看


PS公号内回复「Python」即可进入Python 新手学习交流群,一起100天计划!


老规矩,兄弟们还记得么,右下角的 “在看” 点一下如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

代码获取方式

识别文末二维码,回复:200601


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存