一、scrapy架构介绍
按图流程走
具体释义
流程词 | 中文释义 | 使用 |
EGINE | 引擎 | 引擎负责控制系统所有组件之间的数据流动,并在某些动作发生时触发事件。有关详细信息,请参见上面的数据流部分。 |
SCHEDULER | 调度器 | 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL的优先级队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址。 |
DOWLOADER | 下载器 | 用于下载网页内容, 并将网页内容返回给EGINE,下载器是建立在twisted这个高效的异步模型上的。 |
SPIDERS | 爬虫 | 主要是这里写代码:SPIDERS是开发人员自定义的类,用来解析responses,并且提取items,或者发送新的请求 |
ITEM PIPLINES | 项目管道 | 在items被提取后负责处理它们,主要包括清理、验证、持久化(比如存到数据库)等操作 |
Downloader Middlewares | 下载器中间件 | 位于Scrapy引擎和下载器之间,主要用来处理从EGINE传到DOWLOADER的请求request,已经从DOWNLOADER传到EGINE的响应response,你可用该中间件做以下几件事:设置请求头,设置cookie,使用代理,集成selenium |
Spider Middlewares | 爬虫中间件 | 位于EGINE和SPIDERS之间,主要工作是处理SPIDERS的输入(即responses)和输出(即requests) |
流程走向
- 起始爬取的地址从
SPIDERS(我们写的一个个爬虫)
出发①经过中间件MIDDLEWARE
组装成请求对象REQUESTS
- 进入
引擎EGINE经过
②调度器SCHEDULER
排队等待和去重(因为可能有很多的REQUESTS需要排队,里面有爬过的地址去重) - 第③进入
引擎EGINE
发现是REQUESTS进入第④步下载器DOWNLOADER
开始向互联网发送http请求,返回来之后DOWNLOADER把之前REQUESTS对象做成RESPONSE对象 - 经过第⑤步发现是RESPONSE对象进入第⑥步引擎给SPIDERS解析
- 解析完两种情况
- 第一种接着爬取,REQUESTS对象接着走第②步
- 第二种存起来,走第⑦步
ITEMS(保存数据的对象)
走第⑧步来到管道ITEM PIPLINES
做持久化存储,然后看是存在数据库或文件或redis里
二
标签:请求,05,爬虫,学习,引擎,SPIDERS,EGINE,REQUESTS From: https://www.cnblogs.com/zzjjpp/p/16963034.html