Scrapy 架构概览
1、Scrapy Engine
Scrapy的核心引擎,负责控制数据在系统所有组件中的流动,并在相应动作发生时触发事件,相当于整个框架的总指挥。
2、调度器
调度器(Scheduler)可以被看作一个优先级队列。它从核心引擎接受request并将它们入队,以便之后引擎请求它们时按照优先级提供给引擎。
3、下载器
下载器(Download)负责和网络交,主要作用是获取页面数据并提供给引擎,而后提供给spider做解析,下载器在整个Scrapy架构中应该是负担最重的组件,由于其需要和网络交互,直接影响Scrapy的爬取效率。
4、Spiders
Spiders是Sprapy用户编写用于分析response并提取item(即获取到的item)或额外跟进URL的类。对用户编写爬虫而言,它是最重要的组件。用户可以在同一个项目中编写多个spider,每个spider负责处理一个特定(或一些)的网站。
5、Item Pipeline
Item Pipeline负责处理被spider提取出来的Item。典型的处理有:清理、验证及持久化(如存储数据)。
6、下载器中间件
下载器中间件(Download Middlewares)是在核心引擎及下载器之间的特定钩子,负责处理引擎传递给下载器的request和下载器传递给引擎的response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。
7、爬虫中间件
爬虫中间件(Spider Middlewares)是在核心引擎及spider之间的特定钩子,处理spider的输入(response)和输出(items及requests)。其提供了一个简便的机制,过插入自定义代码来扩展Scrapy功能。
网友评论