当前位置: 首页 > article >正文

【Python爬虫】简单案例介绍1

目录

三、Python爬虫的简单案例

3.1 网页分析

单页


三、Python爬虫的简单案例

本节以科普中国网站为例。

3.1 网页分析

单页

在运用 Python 进行爬虫开发时,一套严谨且有序的流程是确保数据获取高效、准确的关键。首先,深入分析单个页面的页面结构是整个爬虫开发的基石。每个页面都如同一个独特的 “数据容器”,其 HTML 标签、CSS 类名以及元素的层级关系等,都蕴含着数据提取的线索。

通过仔细剖析这些结构信息,我们能够精准定位到所需数据所在的位置,例如文章的标题可能位于<h1>标签下某个特定的类中,正文内容或许被包裹在<p>标签的集合里。只有精确掌握这些细节,才能编写针对性强的代码来提取数据,避免在海量信息中盲目寻找,提高数据提取的准确性和效率。

(1)首先打开网站,在需要获取信息的标签处右击“检查”打开浏览器开发者工具,如下图所示,

然后,在浏览器开发者工具中点击“元素Elements”。 如下图所示,我们想要爬取的文章信息包括:

  • 文章标题,文章正文,网页链接

  • 文章tag,发布者,发布时间

  • 图片数量,页底标签,网页链接

(2)可以看到我们想要爬取的文章信息都是保存在一个列表里:类名为"list-block"的div标签

这个list-blocks列表中又包括21个小的类名为"list-block _blockParma"的div标签,这也说明了每个页面都有21条文章信息。所以我们首先第一步需要先爬取这个列表数据。

(3)第一步,我们需要request请求科普中国网站地址url,解析得到类名为"list-block"的div标签

(4)在上一步爬取到这个列表数据之后,第二步,我们需要for循环遍历这个div列表里的每个子div,我们就可以提取到文章标题,文章标题url,内容来源,内容来源url,发布时间等信息。

如下图所示,

(5)经过上一步,我们已经解析得到了当前一个页面上21条文章的文章标题,文章标题url,内容来源,内容来源url,发布时间

接下来,如果我们想要获取对应这篇文章更详细的信息,比如文章内容。我们就需要再次request请求某个具体的文章的文章标题url,这样就可以在请求的响应结果中会得到该具体文章的页面源代码,从中解析得到文章正文部分

如下图所示,

除此之外,我们还可以从中解析得到这篇文章的其他信息,比如正文部分中包含的图片url以及数量。

因为,从文章正文部分中包含的图片的url地址中可以发现其存储规律,进而可以通过过滤法来采集得到图片url和数量。

如下图所示,

在成功爬取单个文章页面信息后,我们现在可以顺利获取到21篇文章的详细数据了。

相关文章:

【Python爬虫】简单案例介绍1

目录 三、Python爬虫的简单案例 3.1 网页分析 单页 三、Python爬虫的简单案例 本节以科普中国网站为例。 3.1 网页分析 单页 在运用 Python 进行爬虫开发时&#xff0c;一套严谨且有序的流程是确保数据获取高效、准确的关键。首先&#xff0c;深入分析单个页面的页面结构…...

LLM-as-Judge真的更偏好AI输出?

论文标题 Do LLM Evaluators Prefer Themselves for a Reason? 论文地址 https://arxiv.org/pdf/2504.03846 代码地址 https://github.com/wlchen0206/llm-sp 作者背景 弗吉尼亚大学&#xff0c;乔治华盛顿大学 实践建议 在将LLM部署为评估器之前&#xff0c;应严格评…...

【软考-架构】13.3、架构复用-DSSA-ABSD

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 1、软件架构复用2、特定领域软件架构DSSADSSA的三个基本活动参与DSSA的四种角色人员建立DSSA的过程三层次模型 考试真题第一题第二题 3、基于架构的软件开发ABSD的软件开发…...

色温插值计算借鉴

色温插值计算方法借鉴&#xff1a; 摘至&#xff1a;Understanding the in-camera rendering pipeline & the role of AI and deep learning...

git合并分支原理

Git合并的原理是基于三方合并&#xff08;three-way merge&#xff09;算法&#xff0c;它通过比较三个快照来合并不同分支上的更改。这三个快照包括两个要合并的分支的最新提交和它们的共同祖先提交。合并过程并不是简单地按照提交时间来进行&#xff0c;而是通过比较这些快照…...

SnailJob:分布式环境设计的任务调度与重试平台!

背景 近日挖掘到一款名为“SnailJob”的分布式重试开源项目,它旨在解决微服务架构中常见的重试问题。在微服务大行其道的今天&#xff0c;我们经常需要对某个数据请求进行多次尝试。然而&#xff0c;当遇到网络不稳定、外部服务更新或下游服务负载过高等情况时&#xff0c;请求…...

网络安全-Http\Https协议和Bp抓包

1. http协议&#xff0c;有请求必有相应&#xff0c; 请求协议&#xff0c; 响应协议&#xff1b; 2. 密码学加密机制及常用算法和常用名称说明&#xff1a; 算法 密钥 明文数据 密文&#xff1b; 加密算法分类和常用算法&#xff1a; 加密算法可以归结为三大类&#xff…...

爱普生FC1610AN5G手机中替代传统晶振的理想之选

在 5G 技术引领的通信新时代&#xff0c;手机性能面临前所未有的挑战与机遇。从高速数据传输到多任务高效处理&#xff0c;从长时间续航到紧凑轻薄设计&#xff0c;每一项提升都离不开内部精密组件的协同优化。晶振&#xff0c;作为为手机各系统提供稳定时钟信号的关键元件&…...

质粒已被全面解析

随着微生物研究的不断深入和耐药性问题的日益加剧&#xff0c;了解质粒对开发抗菌策略及生物技术应用意义重大。但现有质粒数据库缺乏细致注释并且工具存在不足。近期&#xff0c;香港城市大学李帅成课题组在Nucleic Acids Research期刊发表研究成果&#xff0c;推出全面注释质…...

实验二.单按键控制LED

1.实验任务 如图4.1所示:在P0.0端口上接一个发光二极管L1,按键按一下灯亮,在按一下灯灭。 2.电路原理图 3.系统板上硬件连线 把“单片机系统”区域中的P0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容...

编程语言到mysql ‘\‘到数量关系

在 MySQL 的模糊查询中&#xff0c;反斜杠 \ 的转义规则需要根据 转义层级 和 SQL 模式 来确定。以下是详细说明及示例&#xff1a; 一、默认模式下&#xff08;未启用 NO_BACKSLASH_ESCAPES&#xff09; 1. 规则说明 反斜杠转义&#xff1a;\ 是 MySQL 的默认转义字符。 转义…...

【ROS】move_base 导航节点概述

【ROS】move_base 导航节点概述 前言move_base 架构move_base 内部模块move_base 外部数据 前言 本章介绍 ROS 导航系统中的核心节点 move_base&#xff0c;它负责路径规划和导航控制&#xff0c;是系统的调度中心。我们将简要讲解其内部模块结构&#xff0c;以及运行所需的外…...

【教程】Ubuntu修改ulimit -l为unlimited

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 问题描述 解决方法一 解决方法二 解决方法三 (终极) 问题描述 查系统资源限制 ulimit -l如果返回的是 64 或其他较小值&#xff0c;那么RDM…...

【FPGA基础学习】DDS信号发生器设计

一、IP核简介 IP核的定义与核心作用 定义 IP核是芯片设计中独立功能的成熟模块&#xff0c;例如处理器、存储器、接口协议等。它们以硬件描述语言&#xff08;HDL&#xff09;、网表或物理版图形式交付&#xff0c;供其他设计者直接调用&#xff0c;避免重复开发 核心作用 缩…...

【四川省第三届青少年C++算法设计大赛 (小低组) 第 一试】

一、单项选择题(共15题,每题2分,共计30分;每题有且仅有一个正确选项) 1、计算机中负责执行算术和逻辑运算的部件是() A. 内存 B.CPU C.硬盘 D.鼠标 2、近期备受关注的国产开源生成式人工智能大模型是() A. AlphaChat B. OpenPilot …...

linux ceres库编译注意事项及测试demo

最近linux编译了ceres库,因为要涉及到一个程序源代码的编译&#xff0c;但是反复测试&#xff0c;一直各种错误&#xff0c;所以一个个问题排除&#xff1b; 虽然前面ceres库编译成功了&#xff0c;但是版本自定义扔进去的&#xff0c;所以在进行代码编译的时候各种报错。 参考…...

Flux.1+ComfyUI组合实战!本地部署生成高质量AI图片全流程指南

文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术风起云涌的时代&#xff0c;图像生成模型已经从科幻变成了现实中的‘印钞机…...

css hover 实现鼠标放上去后略微放大的效果

代码如下&#xff1a; <div class"button">文字</div>css代码如下&#xff1a; .button{width: 100px;height: 50px;margin-top: 100px;margin-left: 100px;color: white;background-color: gray;line-height: 50px;text-align: center;transition: all…...

UWB定位技术目前主要应用在哪些行业(更新2025)

UWB定位技术的主要行业应用 ‌一、工业制造领域‌ ‌人员与设备定位‌&#xff1a;通过厘米级精度追踪工人、叉车及设备位置&#xff0c;优化生产流程并提升安全管理效率&#xff08;如高危区域实时报警&#xff09;‌。‌防撞预警与工时统计‌&#xff1a;结合电子围栏实现设…...

深入解析C++引用:安全高效的别名机制及其与指针的对比

一、引用的核心概念 1.1 引用定义 引用&#xff08;Reference&#xff09;是C为变量创建的别名&#xff0c;通过&符号声明。其核心特性&#xff1a; 指针适用场景&#xff1a; 现代C黄金法则&#xff1a; "引用是指针的安全马甲&#xff0c;而智能指针是带着安全帽的…...

分词与倒排索引的原理:深入解析与 Java 实践

在信息检索领域&#xff0c;如搜索引擎和全文检索系统&#xff0c;分词&#xff08;Tokenization&#xff09;和倒排索引&#xff08;Inverted Index&#xff09;是核心技术。分词将文本拆分为语义单元&#xff0c;为索引构建提供基础&#xff1b;倒排索引则高效映射词项到文档…...

vscode格式化为什么失效?自动保存和格式化(Prettier - Code formatter,vue-format)

vscode自动格式化保存最终配置 博主找了好多的插件&#xff0c;也跟着教程配置了很多&#xff0c;结果还是没有办法格式化&#xff0c;最终发现了一个隐藏的小齿轮&#xff0c;配置完后就生效了 关键步骤 关键配置 一定要点小齿轮&#xff01;&#xff01;&#xff01; 这个小…...

鸿蒙应用元服务开发-Account Kit配置登录权限

一、场景介绍 华为账号登录是基于OAuth 2.0协议标准和OpenID Connect协议标准构建的OAuth2.0 授权登录系统&#xff0c;元服务可以方便地获取华为账号用户的身份标识&#xff0c;快速建立元服务内的用户体系。 用户打开元服务时&#xff0c;不需要用户点击登录/注册按钮&#…...

如何提高webrtc操作跟手时间,降低延迟

第一次做webrtc项目&#xff0c;操作延迟&#xff0c;一直是个问题&#xff0c;多次调试都不能达到理想效果。偶尔发现提高jitterBuffer时间可以解决此问题。关键代码 const _setJitter (values: number) > { const receives peerConnection.getReceivers();receives.f…...

Promise链式调用、async和await

目录 回调函数地狱与Promise链式调用 一、回调函数地狱 1. 典型场景示例 2. 回调地狱的问题 二、Promise链式调用 1. 链式调用解决回调地狱 2. 链式调用的核心规则 三、链式调用深度解析 1. 链式调用本质 2. 错误处理机制 四、回调地狱 vs 链式调用 五、高级链式技…...

React ROUTER之嵌套路由

第一张是需要修改router文件createBrowserRouterd参数数组中的路由关系 第二张是需要在一级路由的index.js中选择二级路由的位置 第一步是在全局的router.js文件中加入新的children属性&#xff0c;如图 第二步是在一级路由的index.js文件中声明outLet组件 默认二级路由 在…...

TestNG 单元测试详解

1、测试环境 jdk1.8.0 121 myeclipse-10.0-offline-installer-windows.exe TestNG 插件 org.testng.eclipse 6.8.6.20130607 0745 2、介绍 套件(suite):由一个 XML 文件表示,通过<suite>标签定义,包含一个或更多测试(test)。测试(test):由<test>定义&#xf…...

测试100问:http和https的区别是什么?

哈喽&#xff0c;大家好&#xff0c;我是十二&#xff0c;今天给大家分享的问题是&#xff1a;http和https的区别是什么&#xff1f; 首先我们要知道 HTTP 协议传播的数据都是未加密的&#xff0c;也就是明文的&#xff0c;因此呢使用 http协议传输一些隐私信息也就非常不安全&…...

通过python实现bilibili缓存视频转为mp4格式

需要提前下好ffmpeg import os import fnmatch import subprocess Bilibili缓存的视频&#xff0c;*280.m4s结尾的是音频文件&#xff0c;*050.m4s结尾的是视频&#xff0c;删除16进制下前9个0&#xff0c;即为正常音/视频 使用os.walk模块&#xff0c;遍历每一个目录&#xf…...

高效爬虫:一文掌握 Crawlee 的详细使用(web高效抓取和浏览器自动化库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Crawlee概述1.1 Crawlee介绍1.2 为什么 Crawlee 是网页抓取和爬取的首选?1.3 为什么使用 Crawlee 而不是 Scrapy1.4 Crawlee的安装二、Crawlee的基本使用2.1 BeautifulSoupCrawler的使用方式2.2 ParselCrawler的使…...