Python爬虫实战案例——第五例

文章中所有内容仅供学习交流使用,不用于其他任何目的!严禁将文中内容用于任何商业与非法用途,由此产生的一切后果与作者无关。若有侵权,请联系删除。

目标:采集三国杀官网的精美壁纸

地址:aHR0cHM6Ly93d3cuc2FuZ3Vvc2hhLmNvbS9tc2dzL21XYWxsUGFwZXI=

从开发者工具中进行分析

Python爬虫实战案例——第五例_第1张图片

可以看到图片是位于一个class值为galary_wrapperdiv标签之中,所以我们可以先考虑数据是否是在这个html页面中响应而非异步加载的,从响应文本中搜索一下galary_wrapper看看是否有相应数据。

Python爬虫实战案例——第五例_第2张图片

这就很润了,一共九张图片都在当前这个html页面中,那么就直接xpath解析就好了,但紧接着后边页面的图片又怎么来呢。

Python爬虫实战案例——第五例_第3张图片

点击“查看更多”然后才会加载出来新的图片,毫无疑问,除了第一页之外的图片都是异步加载来的,所以我们来抓包分析一下。

可以看到点击之后抓到的包中返回了图片url,那么也就是说通过这个包我们就可以拿到第二页的图片地址了。那么第三页呢,它的url必然和第二页是有着一定的共同之处的。再点击“查看更多”然后观察第三页和第二页两个包的url。两页的url地址如下:

第二页:https://www.sanguosha.com/msgs/mWallPaper/cur/2
第三页:https://www.sanguosha.com/msgs/mWallPaper/cur/3

可以看到只有最后的数字发生了变化,前面的不管是域名还是路径都没有任何的区别。所以我们只需要修改最后的数字就可以获取到图片url了。但是要注意,第一页的图片只能通过html页面获取,不能通过这个接口获取。所以我们请求的时候需要判断请求的是第一页或其他。伪代码如下:

if 页码 ==  1:
	请求https://www.sanguosha.com/msgs/mWallPaper并解析
else:
	请求https://www.sanguosha.com/msgs/mWallPaper/cur/%d
	解析图片地址

最后,将所有放到列表中的图片url遍历出来进行请求并将图片保存到本地即可。

完整代码请移步:https://gitee.com/shuailiuquan/spider-code/tree/master/

你可能感兴趣的:(Python爬虫实战案例,爬虫,python)