scrapy五大核心组件

python爬虫-scrapy五大核心组件和中间件 文章目录一、scrapy五大核心组件Spiders(爬虫)Scrapy Engine(Scrapy引擎)Scheduler(调度器)Downloader(下载器)ItemPipeline(项目管道)二、工作流程三、中间件3.1 下载中间件3.1.1 UA伪装3.1.2 代理IP3.1.3 集成selenium3.2 爬虫中间件 一、scrapy五大核心组件 下面这张图我们在python爬虫-scrapy基本使用见到过,下面就稍微介绍一下scrapy的五大核心组件和中间件 Spiders(爬虫) &nbsp 阅读详情

- scrapy五大核心组件
引擎(Scrapy)
    用来处理整个系统的数据流处理, 触发事务(框架核心)
调度器(Scheduler)
    用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
下载器(Downloader)(scrapy的异步在这里)
    用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
爬虫(Spiders)
    爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
项目管道(Pipeline)
    负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。

 

 

 

 

 

 

Scrapy Engine: 这是引擎,负责Spiders、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等等!(像不像人的身体?)

Scheduler(调度器): 它负责接受引擎发送过来的requests请求,并按照一定的方式进行整理排列,入队、并等待Scrapy Engine(引擎)来请求时,交给引擎。

Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spiders来处理,

Spiders:它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器),

Item Pipeline:它负责处理Spiders中获取到的Item,并进行处理,比如去重,持久化存储(存数据库,写入文件,总之就是保存数据用的)

Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件

Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spiders中间‘通信‘的功能组件(比如进入Spiders的Responses;和从Spiders出去的Requests)

 

数据在整个Scrapy的流向:

程序运行的时候,

引擎:Hi!Spider, 你要处理哪一个网站?

Spiders:我要处理23wx.com

引擎:你把第一个需要的处理的URL给我吧。

Spiders:给你第一个URL是XXXXXXX.com

引擎:Hi!调度器,我这有request你帮我排序入队一下。

调度器:好的,正在处理你等一下。

引擎:Hi!调度器,把你处理好的request给我,

调度器:给你,这是我处理好的request

引擎:Hi!下载器,你按照下载中间件的设置帮我下载一下这个request

下载器:好的!给你,这是下载好的东西。(如果失败:不好意思,这个request下载失败,然后引擎告诉调度器,这个request下载失败了,你记录一下,我们待会儿再下载。)

引擎:Hi!Spiders,这是下载好的东西,并且已经按照Spider中间件处理过了,你处理一下(注意!这儿responses默认是交给def parse这个函数处理的)

Spiders:(处理完毕数据之后对于需要跟进的URL),Hi!引擎,这是我需要跟进的URL,将它的responses交给函数 def  xxxx(self, responses)处理。还有这是我获取到的Item。

引擎:Hi !Item Pipeline 我这儿有个item你帮我处理一下!调度器!这是我需要的URL你帮我处理下。然后从第四步开始循环,直到获取到你需要的信息,

注意!只有当调度器中不存在任何request了,整个程序才会停止,(也就是说,对于下载失败的URL,Scrapy会重新下载。)

以上就是Scrapy整个流程了。

 

 

Scrapy爬虫框架介绍 Scrapy是什么、创建Scrapy项目、配置请求头、配置管道、数据建模 阅读详情

相关推荐

Python爬虫之Scrapy框架系列(1)——初识Scrapy框架【安装+简介+运行流程+组件介绍】

Python爬虫之Scrapy框架系列(1)——初识Scrapy框架【安装+简介+运行流程+组件介绍】

孤寒者的博客 3万+

爬虫框架 Scrapy 详解

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy是一个框架,可以根据需求进行定制。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。...

m0_67403076的博客 1万+

别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)

本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。

weixin_42522964的博客 442

Scrapy 框架

Scrapy 是一个基于 Twisted 的异步处理框架,是纯 Python 实现的开源爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强,可以灵活完成各种需求。自定义 Item Pipeline 很简单,每个 Item Pipeline 组件都是一个独立的 Python 类,该类中的 process_item 方法必须实现,每个 Item Pipeline 组件都需要调用 process_item 方法。

MagicOct的博客 3117

Simulink仿真避坑指南:如何设置步长、powergui和模块采样时间才能让控制周期更稳定

本文深入解析Simulink仿真中步长、powergui和模块采样时间的协同配置方法,帮助工程师解决控制周期不稳定问题。通过实际案例和参数调优技巧,指导用户精准设置仿真参数,确保电机控制、电力电子系统等工业仿真结果的可靠性。

weixin_42524762的博客 417

海康视觉脚本开发全流程解析

本文详细解析了海康机器视觉平台(VM)中脚本模块的开发全流程。从创建第一个脚本模块入手,深入讲解了输入参数、输出参数与内部变量的定义与区别,并提供了C#脚本编写、公用函数调用、代码结构组织以及编译调试的实用指南。旨在帮助开发者掌握海康视觉脚本开发的核心技巧,高效实现复杂的自定义视觉逻辑处理。

beer8的博客 597

Scrapy框架(高效爬虫)

Scrapy拥有高性能持久化存储,异步数据下载,高性能数据解析,分布式功能。

weixin_46287157的博客 1万+

适合初学者的ROS机器人教程(1): Ubuntu下ROS创建自己的包和使用github下载的包

ROS如何创建自己的包 1. 首先创建catkin工作空间(如果你以及有了请忽略) $ mkdir catkin_ws # 创建一个文件夹里面计划放我们的项目,ws是workspace的缩写 $ cd catkin_ws # 将当前工作文件夹切换到catkin_ws这个文件夹 ~/catkin_ws$ catkin_make # 执行catkin_make创建一ROS项目 此时你的catkin_...

@司南牧|知乎|博客|易懂教程|李韬 3243

scrapy之五大核心组件

scrapy之五大核心组件   scrapy一共有五大核心组件,分别为引擎、下载器、调度器、spider(爬虫文件)、管道。   爬虫文件的作用:     a. 解析数据     b. 发请求   调度器:     a. 队列       队列是一种数据结构,拥有先进先出的特性。     b. 过滤器       过滤器适用于过滤的,过滤重复的请求。     调度器是...

davidlee1214的博客 1506

AI自主网络攻击技术深度解析:从LLM驱动到防御体系升级

网络安全领域正经历从自动化脚本到智能自主攻击的范式转变。其核心原理在于将大型语言模型(LLM)与自动化渗透测试框架深度融合,构建具备环境感知、决策规划和自适应能力的攻击系统。这种技术的核心价值在于实现了从预设步骤到目标驱动的质变,能自主完成信息收集、漏洞利用、横向移动等复杂攻击链。在应用场景上,它不仅能极大提升高级持续性威胁(APT)的攻击效率,也对渗透测试和红队演练技术提出了新的要求。面对此类由AI驱动的自主攻击,传统的基于签名的防御体系已显不足,必须转向以行为分析和零信任为核心的整体纵深防御。本次曝光的

weixin_34254464的博客 604

内网CentOS离线部署LibreOffice:从依赖缺失到服务启动的完整避坑指南

本文详细介绍了在CentOS内网环境中离线部署LibreOffice的完整流程,包括依赖包准备、安装顺序优化及常见报错解决方案。针对金融等封闭网络场景,提供从rpm包选择到服务启动的全套避坑指南,特别解决libXinerama等图形库缺失问题,确保文档转换服务稳定运行。

weixin_33416697的博客 246

Scrapy五大核心组件简介

五大核心组件 scrapy框架主要由五大组件组成,他们分别是调度器(Scheduler),下载器(Downloader),爬虫(Spider),和实体管道(Item Pipeline),Scrapy引擎(Scrapy Fngine) 下面我们说说他们各自的作用: 调度器 用来接受引擎发过来的请求,由过滤器重复的url并将其压入队列中,在引擎再次请求的时候返回,可以想象成一个URL(抓取...

weixin_30602505的博客 295

[GXYCTF2019]BabyUpload1 -- .htaccess文件解析与蚁剑实战指南

本文深入解析了[GXYCTF2019]BabyUpload1文件上传漏洞的实战利用。通过绕过后缀名与内容检测,上传包含PHP代码的.jpg文件,并利用.htaccess文件强制服务器将其解析为PHP脚本。文章详细介绍了.htaccess的原理、构造方法、Content-Type绕过技巧,并演示了如何使用中国蚁剑连接Webshell获取Flag,为Web安全学习提供了完整实战指南。

weixin_29016315的博客 507

scrapy五大核心组件简介

scrapy五大核心组件简介 scrapy的基本使用我们已经掌握,但是各位心中一定会有些许的疑问,我们在编写scrapy工程的时候,我们只是在定义相关类中的属性或者方法,但是我们并没有手动的对类进行实例化或者手动调用过相关的方法,那么这些操作都是谁做的呢?接下来我们就来看看scrapy的五大核心组件的工作流程,然后大家就会上述的疑问有基本了解了。 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在

weixin_46435234的博客 566

【WRF安装第三期(Ubuntu)】搭建WRF编译所需系统-第三方依赖库安装

WRF安装第三期:搭建WRF编译所需系统-第三方依赖库安装

WW、forever的博客 3137

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

scrapy 五大核心组件-分页

scrapy 五大核心组件-分页 分页 思路 总的原理和之前是一样的,但是由于框架的原因,要遵循他框架的使用方式,每次更改他的url,并指定回调函数 # -*- coding: utf-8 -*- import scrapy class XiaohuanameSpider(scrapy.Spider): name = 'xiaohuaname' # allowed_d...

weixin_30292745的博客 163

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Scrapy框架 五大核心组件和中间件

五大核心组件工作流程 引擎(Scrapy) 用来处理整个系统的数据流处理,触发事物(框架核心) 调度器(Scheduler) 用来接收引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回 下载器(Downloader) 用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders) 爬虫主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(item),用户也可从中提取链接,让Scrapy继续抓取下一个页面 项目管道(Pipe

CrazyDemo的博客 860

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

学习记录 Scrapy五大核心组件及实现过程

五大核心组件 爬虫(Spider)、下载器(Downloader)、调度器(Scheduler)、引擎(Scrapy)、管道(Pipelines) 各个组件的功能: ​ 引擎:用来处理整个系统的数据流处理,触发事务(框架核心) ​ 调度器:用来接收引擎发过来的请求,使用过滤器去重后压入队列,并在引擎再次请求的时候返回,可以想象成一个URL(抓取网页的网址或者说是链接)的优先队列,由它决定下一个要抓取的网址是什么,同时去除重复的网址 ​ 下载器:用于下载网页内容,并将网页内容返回给爬虫(scrapy下载器是

遥远染上空白的博客 226

爬虫框架scrapy(3)五大核心组件

scrapy 五大核心组件的工作流程当执行爬虫文件时,5大核心组件就在工作了 spiders 引擎(Scrapy Engine)管道(item Pipeline)调度器(Scheduler)下载器(Downloader) 首先执行爬虫文件spider,spider的作用是 (1)解析(2)发请求,原始的url存储在于spider中1:当spider执行的时候,首先对起始的url发送请...

weixin_30399797的博客 254

scrapy五大核心组件和中间件以及UA池和代理池

五大核心组件的工作流程 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader) ...

JZ5203的博客 342

Scrapy框架五大核心组件

Scrapy框架五大核心组件 引擎(scrapy) 用来处理整个系统的数据流处理,触发事务(框架核心) 调度器(scheduler) 用来接收引擎发过来的请求(去重后)压入队列,并在引擎再次请求时返回队列 下载器(downloader) 用来下载网页内容,并将网页内容以response的形式返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)。 爬虫(spiders) 爬虫是主要干活的, 它可以生成url, 并从特定的url中提取自己需要的信息, 即所谓的实体(

weixin_48737462的博客 578

17-爬虫之scrapy框架五大核心组件工作流程及下载中间件介绍04

scrapy的五大核心组件 引擎(Scrapy) 对整个系统的数据流进行处理, 触发事务(框架核心). 调度器(Scheduler) 用来接受引擎发过来的请求. 由过滤器过滤重复的url并将其压入队列中, 在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么. 下载器(Downloader) 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的). 爬虫(Spiders) 爬虫是主

gemoumou的python学习实记 711
上一篇: scrapy测试爬取虎牙部分数据(两种存储方式)
下一篇: scrapy通过手动请求传参来实现全站深度爬取
SpringBears
博客等级 码龄9年 2粉丝 73原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值