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


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

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

    地址:aHR0cHM6Ly93d3cuc2FuZ3Vvc2hhLmNvbS9tc2dzL21XYWxsUGFwZXI=

    在这里插入图片描述

    开发者工具中进行分析

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

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

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

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

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

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

  • 相关阅读:
    Python 爬虫正则表达式和re库,及re库的基本使用,提取单个页面信息
    内存泄漏问题,4种智能指针(介绍+模拟实现)
    我们用STM32开发时为什么要使用架构
    使用 Kubeadm 部署 Kubernetes(K8S) 安装
    基于Spring Boot+Vue的论坛网站
    《C和指针》笔记29:数组名和指针
    redis实战篇之导入黑马点评项目
    SpringBoot多模块项目中无法注入其他模块中bean
    OpenAI接口开发指南
    C++期末课设—图书管理系统
  • 原文地址:https://blog.csdn.net/weixin_43770993/article/details/132945874