python爬取王者荣耀英雄图片

一、分析需要爬取的网站

①、打开官方王者荣耀壁纸网站

  • 网站地址:https://pvp.qq.com/web201605/wallpaper.shtml

②、快捷键F12,调出控制台进行抓包

③、找到正确的链接并分析

④、查看返回数据格式

⑤、解析url链接

⑥、查看url内容是否是所需图片,发现其实是缩略图

⑦、那就去分析网站,随便点开一张壁纸,查看指定格式的链接

⑧、找到目标地址

⑨、分析目标链接和缩略图的链接区别

  • 缩略图:http://shp.qpic.cn/ishow/2735090714/1599460171_84828260_8311_sProdImgNo_6.jpg/200

  • 目标图:http://shp.qpic.cn/ishow/2735090714/1599460171_84828260_8311_sProdImgNo_6.jpg/0

  • 可以知道,将指定格式的缩略图地址后面200替换成0就是目标真实图片

二、爬虫代码

①、至此,爬虫分析完成,爬虫完整代码如下

放在另一篇文章中:https://www.cnblogs.com/junmoye/p/14618474.html

②、详细分析链接

  • 其实前端发送的是jsonp请求,这样的数据在python不好处理,因为不是标准的json格式

  • 因为其前面JQuery1710418919222这个字符串,而知道jsonp的请求的都知道,有这个前缀,必然请求链接中有相同的callback参数,将其删除即可

  • 因此我python代码中是删除了这个参数的

  • 这个链接还有很多参数,其实我觉得很多都可以删除,但是我懒得慢慢去试

  • 这个请求链接中最重要的一个参数必然就是页码数,也就是page这个参数,iListNum=20&totalpage=0&page={}

  • 上面的三个参数是可用的,一个是20,指每页的数量,totalpage估计没啥用,page抓包发现是从0开始的,这个需要注意一下,因为下面代码需要将总页数减1

③、格式选择

  • 开始运行时,让你选择想下载格式的序号,为什么是8个格式呢,看原网页就知道了,8种不同分辨率的

  • 看上面的图片,缩略图链接有1-8,对应了8中分辨率的缩略图,那么原图必然也是8种

  • 这里我默认1920*1080的,一般电脑用这个分辨率的都可以

  • 其中1的原图,你自己试下,其实也是一个缩略图,所以一般下载选择2-8

④、下载代码分析

  • 第一次请求主要是为了获取总页数,但是请求是从0开始为第一页,所以需要减去1

  • while true中就是开始从0循环去请求地址,先找到缩略图地址,然后将缩略图的地址链接200替换成0就是目标图片地址了

  • 如果名字中有特殊字符,就将其用正则去除,不然可能会影响路径的查找

⑤、爬虫运行的结果,相同名字的放在同一个文件夹

 

 更多资源请关注:【全面资源集

posted @ 2021-04-05 15:19  君*邪  阅读(372)  评论(0)    收藏  举报