今天咱们来玩一把王者荣耀。首先咱们打开王者荣耀官网:
王者荣耀pvp.qq.com
进去之后可以看到里面有许多英雄高清皮肤壁纸
于是我就想把这些英雄皮肤的壁纸统统给扒拉到本地。首先咱们如下找到所有的英雄,再找到他们对应的皮肤
找一个我的拿手英雄--达摩
可以看到达摩有四个皮肤,我的想法就是把达摩所有的皮肤都下载到本地。
首先咱们F12找到皮肤所在的位置:
达摩有四个皮肤,所以这个链接的后缀1234分别代表四个不同的皮肤。
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-1.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-2.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-3.jpg
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-4.jpg
所以咱们就可以得出结论,同一英雄皮肤位置只有后面的序号不同。如果你输入5,那就是不存在的,所以它就会报404找不到的错误!
接下来咱们再分析一下不同英雄之间是如何区分的
达摩和二师兄的地址如下:
https://pvp.qq.com/web201605/herodetail/134.shtml
https://pvp.qq.com/web201605/herodetail/511.shtml
观察一下有什么规律?
除了后面的数字不同在都是一样的吧~所以我们猜测一下,英雄之间是不是就是由后面那个数字控制的?
我们如下界面打开F12观察一下网络请求。
我们点击查看一下这些英雄信息
可以很清晰地看到每个英雄对应的编号,名字和皮肤。为了保险起见,咱们可以验证一下,例如109是妲己,它有7个皮肤。所以它的请求地址应该就是
https://pvp.qq.com/web201605/herodetail/109.shtml
怎么样,没错吧!
好了到此为止,我们准备工作已经完成一大半了,接下来就剩下编码了
代码实现
按照之前的分析,我们首先要得到各个英雄对应的编号,所以首先需要分析herolist.json文件
可以看到已经打印出我们所需的英雄信息了,但是我们需要的没有这么复杂。英雄壁纸我们需要英雄编号和姓名就够了。
已经成功的提取出我们想要的信息了,接下来我们再看看之前的壁纸链接
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/134/134-bigskin-1.jpg
替换我们需要修改的参数即可
http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/' + hero_No + '/' + hero_No + '-bigskin-1.jpg
刚才咱们已经研究过了,皮肤壁纸的不同之处在于最后面的编号,他有多少皮肤编号就到多少。但是最大皮肤不超过10个,至少目前是这样。所以我们给他设置一个最大为10的循环来获取它的皮肤
好了看看我们下载的图片是否满意
好了到此为止代码已经完成。功能虽已实现。但是需要改进的地方还有很多,后续我们继续对代码进行完善。