Scrapy 框架架构
前言
- Scrapy (/ˈskreɪpaɪ/) 是一个用于抓取网站和提取结构化数据的应用程序框架,可用于如数据挖掘、信息处理,网络爬虫。
- scrapy基于异步框架实现的(Twisted)
这一节我们学习一下这个框架的基本架构,了解一下各组件是如何交互的。
一、核心组成
- 引擎(Engine):引擎负责控制系统所有组件之间的数据流。自动运行,无需关注。
- 调度器(Scheduler):接收来自引擎的请求,放在队列中,需要时在按一定次序交给引擎。
- 下载器(Downloader):获取请求信息后,从网络获取数据并返回响应。
- 爬虫(Spiders):我们操作最多的部分,用于解析下载器返回的响应。
- 管道(Item Pipeline):处理爬虫解析好的数据,例如数据持久化(存入数据库),查重等。
- 下载中间件(Downloader middlewares):处理引擎发来的请求和下载器发出的响应。
- 爬虫中间件(Spider middlewares):处理进入spider的响应和出spider的数据或新请求。
二、数据流

对照上面的图片:
- 引擎从Spider获取初始请求 。
- 引擎请求调度器,并准备下一次请求的抓取
- 调度器将请求交给引擎
- 引擎发出请求经过下载中间件交给下载器
- 下载完成后,下载器返回响应再次经过下载中间件交给引擎
- 引擎接收来自下载器的请求,经过爬虫中间件发送给 爬虫进行处理
- 爬虫处理响应返回数据item,或者新请求交给引擎,中间还会经过爬虫中间件。
- 引擎将item发送给管道,新请求发送给调度器等待调度
- 从第三步进行循环,直到调度其中没有请求
并不是所有部分我们都需要关注,这些组成中引擎,下载器和调度器,是不需要我们编写的。我们的重点在其他部分。
三、项目结构
接下来我们了解一下创建项目后的结构,在需要存储代码的目录下运行终端cmd:scrapy startproject 爬虫名称
完成后我们会发现已经出现了项目目录,内容如下:
爬虫名称/
scrapy.cfg # 项目配置文件,包含配置路径,部署信息
爬虫名称/ # 项目的Python模块,您将从这里导入代码
__init__.py
items.py # 用来定义Item数据结构
middlewares.py # 用来实现中间件
pipelines.py # 用于编写管道文件,也就是处理数据
settings.py # 项目的全局配置信息
spiders/ # 用来存放日后编写的爬虫文件
__init__.py
总结
本节介绍了Scrapy框架的基础知识,各部分具体如何实现后面会讲,但是这节要理解掌握工作流程,这有助于后面工作的进行。
Scrapy是一个基于Twisted的Python爬虫框架,用于数据抓取和结构化数据处理。其核心组成部分包括引擎、调度器、下载器、爬虫、管道和中间件。引擎控制数据流,调度器管理请求顺序,下载器负责网络通信,爬虫解析响应,管道处理爬取数据,而中间件则处理请求和响应。项目结构包括配置文件、Item定义、中间件、管道、设置和爬虫文件。了解Scrapy的工作流程对于有效实施爬虫至关重要。
776

被折叠的 条评论
为什么被折叠?



