scrapy框架介绍:
scrapy框架是以python作为基础语言,实现网页数据的抓取,提取信息,保存的一个应用框架,可应用于数据提取、数据挖掘、信息处理和存储数据等一系列的程序中。
基本流程:
- 新建项目
- 明确目标
- 制作爬虫模块并开始爬取
- 提取目标数据
- 存储内容
流程架构图(注:下列绿线表示数据流向):
对于上述 scrapy 框架图解的基本工作流程,可以简单的理解为:
- Spiders(爬虫)将需要发送请求的url(Requests)经ScrapyEngine(引擎)提交给 Scheduler(调度器)处理
- 经 Scheduler(调度器)排序、入队处理后,经 ScrapyEngine、DownloaderMiddlewares(可选,主要有User_Agent、Proxy 代理)提交给Downloader(下载器)
- Downloader(下载器)向互联网发送请求,并接收下载响应(Responses)。将响应(Responses)经 ScrapyEngine、SpiderMiddlewares(可选)提交给 Spiders(爬虫)
- Spiders(爬虫)处理 Responses,提取数据并将数据经ScrapyEngine提交给ItemPipeline保存(可以是本地,也可以是数据库)
当一次完成上述 4 个步骤后,提取的 url 地址重新经 ScrapyEngine 提交给 Scheduler 并进行下一个循环,直到 无 url 请求程序时,则结束整个 scrapy 爬虫程序
下面介绍一下组件名称以及描述信息:
Scrapy Engine(引擎) :
引擎负责控制数据流在系统中所有组件 ( 如 Spiders 、 ItemPipeline 、 Downloader 、 Scheduler
中间的通讯、信号、数据传递等 ) 中流动,并在相应动作发生时触发事件。
Scheduler(调度器):
负责接受引擎发送过来的 Request 请求,并按照一定的方式进行整理排列、入队,当引
擎需要时,交还给引擎。
Downloader( 下载器):
负责下载 Scrapy Engine( 引擎 ) 发送的所有 Requests 请求,并将其获取到的 Responses 交还
给 Scrapy Engine( 引擎 ) ,由引擎交给 Spiders 来处理。
Spider( 爬虫 ):
负责处理所有 Responses ,从中分析提取数据,获取 Item 字段需要的数据,并将需要跟
进的 URL 提交给引擎,再次进入 Scheduler( 调度器 ) 。
Item Pipeline( 管道 ):
负责处理 Spiders 中获取到的 Item ,并进行后期处理 ( 详细分析、过滤、存储等 ) 。
Downloader Middlewares (下载中间件):
下载器中间件是在引擎及下载器之间的特定钩子 (specific hook) ,处理 Downloader 传递给
引擎的 Responses( 也包括引擎传递给下载器的 Requests) 。其提供了一个简便的机制,通过
插入自定义代码来扩展 Scrapy 功能。
Spider Middlewares (Spider 中间件):
可以理解为是一个可以自定扩展和操作引擎和 Spiders 中间通信的功能组件 ( 比如进入
Spiders 的 Responses 和从 Spiders 出去的 Requests) 。
以上仅为本人一点理解,不足之处欢迎指正!