一、五大核心组件
- Spider
- 管道
- 调度器
- 引擎
- 下载器
二、作用
1.Spider的作用
1. 可以产生url
2. 可以对url进行请求发送
3. 进行数据解析
Spider会将url封装成请求对象, 发送给引擎
引擎再发送给调度器
2.调度器的作用
调度器由两部分组成
- 过滤器
- 队列
引擎将请求对象发送给调度器以后, 调度器会使用过滤器将请求对象进行去重
由它来决定下一个要抓取的网址是什么
将去重后的请求对象存放到队列中
调度器会从队列中调度请求对象给引擎
引擎会把请求对象给下载器
3. 下载器的作用
下载器是基于异步的, 异步是由twisted实现的
到互联网进行数据的下载
互联网会返回一个response
下载器将response返回给引擎
引擎将response返回给Spider的parse方法
parse方法开始解析, 将解析的数据封装到item中
item会返回给引擎
引擎再给管道
4. 管道的作用
管道进行持久化存储
5. 引擎的作用
用作于数据流处理的
触发事务
引擎是怎么合理触发事务的 :
根据接收到的不同的流数据进行判断
三、有趣的解释
- 引擎 : Hi! Spider, 你要处理哪个网站?
- 引擎 : 你把第一个需要处理的URL给我吧
- 引擎 : Hi!调度器,我这有request请求你帮我排序入队一下
- 调度器 : 好的, 正在处理你等一下
- 引擎 : Hi! 调度器, 把你处理好的request请求给我
- 调度器 : 给你, 这是我处理好的request
- 引擎 : Hi! 下载器, 你安装下载中间件的设置帮我下载一下这个request请求
- 下载器 : 给你, 这是下载好的东西
- 引擎 : Spider, 这是下载好的东西, 并且一下安装下载中间件处理过了
- Spider : 处理完毕数据之后对于需要跟进的URL , Hi! 引擎, 我这里有两个结果, 这个是我需要跟进的URL, 还有这个是我获取到的item数据