scrapy框架大致流程介绍

scrapy框架介绍:

scrapy框架是以python作为基础语言,实现网页数据的抓取,提取信息,保存的一个应用框架,可应用于数据提取、数据挖掘、信息处理和存储数据等一系列的程序中。

基本流程:

  1. 新建项目
  2. 明确目标
  3. 制作爬虫模块并开始爬取
  4. 提取目标数据
  5. 存储内容

流程架构图(注:下列绿线表示数据流向):

scrapy框架大致流程介绍_第1张图片

对于上述 scrapy 框架图解的基本工作流程,可以简单的理解为:

  1. Spiders(爬虫)将需要发送请求的url(Requests)经ScrapyEngine(引擎)提交给 Scheduler(调度器)处理
  2. 经 Scheduler(调度器)排序、入队处理后,经 ScrapyEngine、DownloaderMiddlewares(可选,主要有User_Agent、Proxy 代理)提交给Downloader(下载器)
  3. Downloader(下载器)向互联网发送请求,并接收下载响应(Responses)。将响应(Responses)经 ScrapyEngine、SpiderMiddlewares(可选)提交给 Spiders(爬虫)
  4. 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)
 
 
以上仅为本人一点理解,不足之处欢迎指正!

 

你可能感兴趣的:(爬虫,scrapy,python)