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

可以看到只有最后的数字发生了变化,前面的不管是域名还是路径都没有任何的区别。所以我们只需要修改最后的数字就可以获取到图片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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/81254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA2023.2.1中创建第一个Tomcat的web项目

首先,创建一个普通的java项目。点击【file】-【new】-【project】 创建一个TomcatDemo项目 创建如下图 添加web部门。点击【file】-【project structure】 选择【modules】-选中项目“TomcatDemo” 点击项目名上的加号【】,添加【web】模块 我们就会发现…

网络协议学习地图分享

最近在回顾网络知识点的时候,发现华为数通有关报文格式及网络协议地图神仙网站,这里涵盖了各个协议层及每个协议层对应的协议内容,最人性的化的一点是点击每个单独的协议可以跳转到该协议详细报文格式页面,有对应的说明和解释&…

单片机内存管理

源码说明 源码包含memory.h 和 memory.c 两个文件(嵌入式C/C代码的“标配”),其源码中包含重要的注释。 memory.h文件包含结构体等定义,函数API申明等; memory.c文件是实现内存管理相关API函数的原型。 memory.h …

【JAVA-Day22】深度解析 Java 的包机制

深度解析 Java 的包机制 深度解析 Java 的包机制摘要引言一、什么是包机制1.1 包的定义1.2 包的命名规范1.3 包的声明1.4 包的导入1.5 包的访问权限1.6 包的层次结构1.7 包的目录结构 二、包的命名冲突问题三、总结参考资料 博主 默语带您 Go to New World. ✍ 个人主页—— 默…

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

​全球人类读书会《乡村振兴战略下传统村落文化旅游设计》中国建筑出版传媒许少辉博士著作

【小吉送书—第二期】阿里后端开发:抽象建模经典案例

文章目录 0.引言1.抽象思维2.软件世界中的抽象2.1 命名抽象2.2 分层抽象2.3 原则抽象 3. 经典抽象案例3.1 方案一:战术抽象,多快好省,跑步前进3.2 方案二:深入分析,透过表象,探寻本质 5. 推荐一本书&#x…

Mac专用投屏工具AirServer 7 .27 for Mac中文免费激活版

AirServer 7 .27 for Mac中文免费激活版是一款Mac专用投屏工具,能够通过本地网络将音频、照片、视频以及支持AirPlay功能的第三方App,从 iOS 设备无线传送到 Mac 电脑的屏幕上,把Mac变成一个AirPlay终端的实用工具。 目前最新的AirServer 7.2…

Redis:分布式锁误删原因分析

一、线程阻塞 例如,线程一获取分布式锁,但是线程一阻塞时间过长,导致锁超时释放。此时线程二获取分布式锁。当线程一阻塞结束后,释放分布式锁,但是释放的却是线程二的锁。此时线程二就不安全了,线程三也可…

destoon关于archiver归档的性能优化

今天在处理一个项目时候发现archiver单个模块归档超过百万数据,打开速度就特慢,所以打开archiver下index.php文件进行分析,发现有句sql作怪,查询需要三四分钟,所以要修改这个。 $result $db->query("SELECT …

【Linux】Linux工具

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 一、Linux安装软件: 1.yum安装 2.Linux和Windows文件互传 问题: 3.yum卸载软件 二、vim编辑器 1.命令模式 2.vim配置项说明 3.vim操作总结 一、Linux安装软件&#…

【Vue】快速入门案例与工作流程的讲解

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《Vue快速入门》。&#x1f…

win部署CRM

win部署crm) 1.phpstudy2.composer3.代码4.其他配置 周末锴哥让我帮他部署了一个CRM,写个教程,方便之后他用。锴哥用的是 NxCrm,先把代码下下来。 1.phpstudy 1.首先是下载小皮面板,配置php的环境。这里面下载了php8…

UML类图

优质博客:IT-BLOG-CN UML(Unidied Modeling Language)统一建模语言:用来设计软件的可视化建模语言,能够表达软件设计中的动态与静态信息。UML定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部…

外星人入侵游戏-(创新版)

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

Improving 3D Imaging with Pre-Trained Perpendicular 2D Diffusion Models

使用预先训练的垂直 2D 扩散模型改进 3D 成像 论文链接:https://arxiv.org/abs/2303.08440 项目链接:https://github.com/hyn2028/tpdm Abstract 扩散模型由于其众多的优点已经成为一种流行的图像生成和重建方法。然而,大多数基于扩散的逆…

YOLOv8学习

1 YOLOv8训练自己的数据集 1.1 部署和运行 1.1.1 第一步,下载代码 源码地址 1.1.2 第二步,创建环境 默认已经安装好conda conda create -n yolopy38 python3.8conda activate yolopy38安装所需要的包,先cd到代码目录下 pip install -r…

基于Java的养老院管理系统的设计与实现(亮点:多角色、登录验证码、留言反馈)

养老院管理系统 一、前言二、我的优势2.1 自己的网站2.2 自己的小程序(小蔡coding)2.3 有保障的售后2.4 福利 三、开发环境与技术3.1 MySQL数据库3.2 Vue前端技术3.3 Spring Boot框架3.4 微信小程序 四、功能设计4.1 主要功能描述 五、系统实现5.1 养老院…

Linux底层基础知识

一.汇编,C语言,C,JAVA之间的关系 汇编,C语言,C可以通过不同的编译器,编译成机器码。而java只能由Java虚拟机识别。Java虚拟机可以看成一个操作系统,Java虚拟机是由汇编,C&#xff0c…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

idea创建springboot项+集成阿里连接池druid

创建项目并集成流程 1:前提准备2:创建springboot项目流程3:集成阿里连接池步骤4:集成swagger方便测试5:书写增删改查进行测试6:项目gitee地址 1:前提准备 准备开发工具:idea java环…