前置
import requests from lxml import etree
首先是来到王者荣耀英雄列表页面
https://pvp.qq.com/web201605/herolist.shtml
这里返回了王者荣耀的所有英雄数据
通过requests模块,来获取
limet = requests.get('https://pvp.qq.com/web201605/js/herolist.json', headers=herd).json()
执行一下,获取成功
要通过获取到的英雄ename数字id的东西,来批量获取每个英雄的主页,再通过主页获取所有的皮肤和皮肤名称
#获取英雄主页HTML
resp = requests.get(f'https://pvp.qq.com/web201605/herodetail/{这里填英雄id}.shtml',headers=herd)
#乱码转中文
resp.encoding='gbk'
#解析HTML
ec = etree.HTML(resp.text)
#通过上图中class值获取所有皮肤名称
names = ec.xpath('//ul[@class="pic-pf-list pic-pf-list3"]/@data-imgname')[0]
这里为什么要获取皮肤名称,上面说过了,通过皮肤名称来确认皮肤数量,并且后面保存皮肤图片时也需要命名名称
我们先来获取单个皮肤并保存的案例
获取并保存代码块
查看获取到的皮肤图片
最后可以通过上面的方法已经批量获取了所有英雄的数据,使用for方法批量去循环读取所有英雄皮肤,再封装成函数等方式
也可以封装成输入英雄名称,获取对应的所有皮肤
我这里也有写好,可以直接拿去使用,或者针对自己需求去优化