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

爬虫学习——Spider和Selector

Scrapy数据流图:

Engine:为引擎,其为框架的核心,其他所有组件在其控制下协同工作

Scheduler:为调度器,负责对Spider提交的下载请求进行调度

Downloader:为下载器,负责下载页面(发送HTTP请求/接收HTTP响应)

Spider:为爬虫,负责提取页面中的数据,并产生对新页面的下载请求

Middleware:为中间件,负责对Request对象和Response对象进行处理

Item Pipleline:为数据管道,负责对爬取的数据进行处理

使用Selector提取数据

BeautifulSoup是非常流行的HTTP解析库,API简洁易用,但解析速度较慢。

Lxml底层是由C语言编写的,使得其解析的速度更快,API相对复杂。

而Scrapy综合以上两个的优点实现了Selector类,

在Selector中有以下方法可以对选中的内容进行提取extract()/re()/extract_first()/re_first(),该extract_first()/re_first()方法返回的是第一个SelectorList对象调用extract方法的结果,其中包含该Xpath中的各文本,可以通过索引进行对应的提取。

由于自己对Xpath较为陌生,所以使用下面对XPath的知识进行补充学习:

以下是学习XPath文档:https://www.w3.org/TR/xpath/

CSS语法比XPath简单,但是其功能不如Xpath强大,在使用CSS时,其Python内部会将CSS选择器表达式转化为Xpath表达式,然后调用XPATH方法对其进行处理

以下是学习CSS文档:https://www.w3.org/TR/css3-selectors

http://www.xdnf.cn/news/699.html

相关文章:

  • 快速下载Node.js
  • 【计算机网络 | 第三篇】常见的网络协议(二)
  • 山东大学软件学院创新项目实训开发日志(20)之中医知识问答自动生成对话标题bug修改
  • 使用 Selenium 进行 Web 自动化:详细操作指南
  • 网络安全知识点3
  • strings.SplitN 使用详解
  • GESP2024年12月认证C++八级( 第一部分选择题(1-5))
  • 【大模型】单选数据集制作举例
  • 多态的学习与了解
  • 【Vulkan 入门系列】创建帧缓冲、命令池、命令缓存,和获取图片(六)
  • 深入理解基线检查:网络安全的基石
  • 【NLP 62、实践 ⑮、基于RAG + 智谱语言模型的Dota2英雄故事与技能介绍系统】
  • 基于SpringBoot3实现MyBatis-Plus(SSMP)整合快速入门CURD(增删改查)
  • 深度学习总结(24)
  • idea中导入从GitHub上克隆下来的springboot项目解决找不到主类的问题
  • 【Python爬虫详解】第二篇:HTML结构的基本分析
  • UE虚幻4虚幻5动画蓝图调试,触发FellOutOfWorld事件和打印输出,继续DeepSeek输出
  • OSPF特殊区域
  • 对于在线教育或知识付费类网站视频处理方案
  • INFINI Console 系统集群状态异常修复方案
  • Beszel​​ 轻量级服务器监控平台的详细安装步骤
  • 【某比特币网址请求头部sign签名】RSA加密逆向分析
  • kotlin知识体系(五) :Android 协程全解析,从作用域到异常处理的全面指南
  • 论文阅读:2023 arxiv A Survey of Reinforcement Learning from Human Feedback
  • 机制的作用
  • 【1】云原生,kubernetes 与 Docker 的关系
  • FileZilla“服务器发回了不可路由的地址,使用服务器地址代替
  • 06【流程之舞】控制流:`if/else`, `loop`, `while`, `for` 与模式匹配初窥
  • 深入理解组合实体模式(Composite Entity Pattern)在 C# 中的应用与实现
  • 存储/服务器内存的基本概念简介