Scrapy是一个爬虫框架而非功能函数库,简单地说,它是一个半成品,可以帮助用户简单快速地部署一个
专业的网络爬虫。Scrapy爬虫框架主要由引擎(Engine)、调度器(Scheduler)、下载器(
Downloader)、Spiders、Item Pipelines、下载器中间件(Downloader Middlewares)、Spider中
间件(Spider Middlewares)这7个组件构成。
 
https://www.osgeo.cn/scrapy/index.html  
  • Scrapy入门教程文档

下面介绍一下各个组件

1.了解Scrapy爬虫框架

1.引擎(Engine) - 中央处理器

引擎负责控制数据流在系统所有组件中的流向,并在不同的条件时触发相对应的事件。这个组件相当于爬
虫的“大脑”,是整个爬虫的调度中心。
 
2.调度器(Scheduler)  -  给Spiders爬虫请求排队
调度器从引擎接受请求并将它们加入队列,以便之后引擎需要它们时提供给引擎。初始爬取的URL和后续
在网页中获取的待爬取的URL都将放入调度器中,等待爬取,同时调度器会自动去除重复的URL。如果特
定的URL不需要去重也可以通过设置实现,如post请求的URL。
 
3.下载器( Downloader)
下载器的主要功能是获取网页内容,提供给引擎和Spiders。

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

5.Item Pipelines(管道)-给数据过滤

Item Pipelines主要功能是处理被Spiders提取出来的Items。典型的处理有清理、验证及持久化(例如存 取到数据库中)。当网页被爬虫解析所需的数据存入Items后,将被发送到项目管道(Pipelines),并经 过几个特定的次序处理数据,最后存入本地文件或数据库

6.下载器中间件(Downloader Middlewares)  -  自定义扩展下载功能的组件

下载器中间件是一组在引擎及下载器之间的特定钩子(specific hook),主要功能是处理下载
器传递给引擎的响应(response)。下载器中间件提供了一个简便的机制,通过插入自定义代
码来扩展Scrapy功能。通过设置下载器中间件可以实现爬虫自动更换user-agent、IP等功能。
 
7.Spider中 间件(Spider Middlewares) - 可以自定扩展和操作引擎和Spider中间通信的功能组件
 
Spider中间件是一组在引擎及Spiders之间的特定钩子 (specific hook),主要功能是处理Spiders的输入( 响应)和输出(Items及请求)。Spider中间件提供了 一个简便的机制,通过插入自定义代码来扩展Scrapy功 能。各组件之间的数据流向如图所示。

 

流程如图所示:

1.了解Scrapy爬虫框架

相关文章: