Scrapy architecture(体系结构)
组件:
Scrapy Engine:
引擎负责控制数据流在系统中所有组件中流动,并在相应动作发生时触发事件。
调度器(Scheduler)
调度器从引擎接受 request 并将他们入队,以便之后引擎请求他们时提供给引擎。
下载器(Downloader)
下载器负责获取页面数据并提供给引擎,而后提供给Spider。
Spiders
Spiders 是 Scrpy 用户填写用于分析 response 并提取 item(即获取到item)或额外跟进的url 类。每个 Spider 负责处理一个特定(或一些)网站。
Item Pipeline
Item Pipeline 负责处理被 Spider 提取出来的 Item。典型的处理有清理、验证及持久化(例如存储到数据库中)
下载器中间件(Downloader middlewares)
下载器中间件是引擎及下载器之间的特定钩子(Specific hook),处理Downloader 传递给引擎的 response。其提供了一个简便的机制,通过插入自定义代码来扩展 Scrapy 功能。
Spider中间件(Spider middlewares)
Spider 中间件是引擎及 Spider 之间的特定钩子(Specific hook),处理Spider的输入(response)和输出(item及requests)。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能。
一、数据流程
-
Scrapy 初始的内容时添加在 Spiders 内部的,它初始的 url 的获取通过两种方式: &n