五大模块
中间的是引擎: 引擎负责各个模块之间的通信与调度
引擎的下面是 spiders 爬虫文件
引擎的上面是调度器
引擎的左面是数据管道
引擎的右面是下载器
引擎和下载器中间是 下载中间件
引擎和爬虫中间是 爬虫中间件
具体的运行流程:
- spiders 爬虫文件里面有一个start_url的参数,里面放的就是我们要爬取的目标url ,
- 把要爬取的url 构建一个request 请求,经过爬虫中间件给引擎,经过引擎给调度器,把任务存放在任务队列里面,
- 如果要获取数据的时候,从调度器里面拿数据给引擎,
- 引擎拿到请求之后,经过下载中间件给下载器 (request 请求),把request 给我们的下载器,
- 下载器根据引擎发过来的任务,向对方服务器发起请求拿到一个response 响应,
- 最终把响应通过下载中间件,经过引擎,经过爬虫中间件,最终给spiders 爬虫文件(最终把response响应给爬虫文件),
- 爬虫文件拿到响应之后在爬虫文件里面做两件事 (1.解析响应,提取目标数据,2.提取新的url),
- 爬虫文件拿到item 数据给管道(item 数据),管道拿到数据之后做数据的过滤和持久化。