王者荣耀官网皮肤获取
最近在练习的时候写的一个可以获取王者荣耀官网每一个英雄的皮肤图片
代码如下
import requests
import json
import os
from lxml import etree
def skin_request():
page = requests.get(url=json_url, headers=headers).text
html = json.loads(page)
hero_list = []
for hero in html:
hero_one = {}
hero_one['name'] = hero['cname']
hero_one['ename'] = hero['ename']
hero_list.append(hero_one)
skin_get(hero_list)
def skin_get(hero_list):
for i in hero_list:
ename = str(i['ename'])
for j in range(1, 10):
skin_url = 'https://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + ename + '/' + ename + '-bigskin-' + str(j) + '.jpg'
# print(skin_url)
# 请求皮肤链接
skin = requests.get(url=skin_url, headers=headers)
# 判断请求是否正常,200这代表有这个编号的皮肤
if skin.status_code == 200: # 当请求成功的时候会保存文件
path = save(i['name'])
skin_name = i['name'] + str(j) + '.jpg'
with open(path + '/' + skin_name, 'wb') as f:
f.write(skin.content)
else: # 请求失败证明没这个皮肤了,终止循环
break
def save(name):
path1 = os.path.dirname(__file__) + '/皮肤'
os.chdir(path1)
path = path1 + '/' + name
if not os.path.exists(path):
os.mkdir(name)
return path
if __name__ == '__main__':
main_url = 'https://pvp.qq.com/web201605/herolist.shtml'
json_url = 'https://pvp.qq.com/web201605/js/herolist.json'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36',
}
skin_request()
说明:
代码已经上传到gitee(码云):去码云康康?
headers:仅仅代表使用的浏览器版本,可以打开浏览器,随便开一个网页,按F12,找到User-Agent对应的属性就是自己的浏览器的UA。
用pycharm,Python版本3.0以上应该都能运行,插件也可以直接pip安装
注意:
这个程序有些瑕疵,比如,获取的皮肤图片到本地后,命名会以英雄名字加数字,不是皮肤的名字,原因是它存在json数据中,需要拿出来切片使用,emmmm,说白了,嫌麻烦没搞,嘿嘿
ps:
这只是一个python新手练习的代码,是自己写的,有问题轻喷,望大佬指正,谢谢