3.2数据流
Scrapy中的数据流由引擎控制,scrapy的所有组件工作流程如下图。
1. Engine首先打开一个网站,找到处理该网站的 Spider ,并向该 Spider 请求第一个要爬取的
URL。
2. Engine从 Spider中获取到第一个要爬取的 URL ,并通过Scheduler以 Request的形式调度。
3. Engine向Scheduler请求下一个要爬取的 URL。
4. Scheduler 返回下一个要爬取的 URL 给 Engine, Engine将 URL 通过Downloader Middlewares转
发给 Downloader下载。
5. 一旦页面下载完毕, Downloader生成该页面的Response ,并将其通过 Downloader
Middlewares 发送给 Engine。
6. Engine从下载器中接收到Response,并将其通过 Spider Middlewares发送给 Spider处理。
7. Spider处理 Response ,并返回爬取到的 Item 及新的 Request给 Engine。
8. Engine 将Spider返回的Item 给Item Pipeline,将新的Request给Scheduler。