爬虫实战|欢迎来到王者荣耀!

爬虫是一门有趣的技术,它可以让我们感受到程序的魅力,给我们带来视觉冲击感和成就感,可以极大地提高我们对编程的学习兴趣。

——————————————————————————————————————

愿你我,都能:

遵循君子协议

合理使用技术

提高学习兴趣

今天咱们来玩一把王者荣耀。首先咱们打开王者荣耀官网:

王者荣耀​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的循环来获取它的皮肤

好了看看我们下载的图片是否满意

好了到此为止代码已经完成。功能虽已实现。但是需要改进的地方还有很多,后续我们继续对代码进行完善。

需要学习的同学可以私我哦!

猜你喜欢

转载自blog.csdn.net/qq_36807888/article/details/107556903