前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >喜欢玩荣耀的有福了,用 Python 获取全英雄皮肤

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

作者头像
纯洁的微笑
发布2020-06-19 16:07:14
8051
发布2020-06-19 16:07:14
举报
文章被收录于专栏:纯洁的微笑

文 | 極光

来源:Python 技术「ID: pythonall」

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

安装模块

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

代码语言:javascript
复制
# 安装引用模块
pip3 install bs4
pip3 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- 后面的数字,则对应的是第几个皮肤。

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

代码实现

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

代码语言:javascript
复制
# get_heros.py
# 引入模块
import requests
import json
import os
import 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-st
print("找到并下载"+str(x)+"张图片,总共用时"+str(exec_time)+"秒。")

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

下载完成的皮肤图片:

总结

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 纯洁的微笑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装模块
  • 分析获取
  • 代码实现
  • 总结
相关产品与服务
云开发 CLI 工具
云开发 CLI 工具(Cloudbase CLI Devtools,CCLID)是云开发官方指定的 CLI 工具,可以帮助开发者快速构建 Serverless 应用。CLI 工具提供能力包括文件储存的管理、云函数的部署、模板项目的创建、HTTP Service、静态网站托管等,您可以专注于编码,无需在平台中切换各类配置。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档