转: scrapy的数据处理流程

scrapy的数据处理流程
近日深入scrapy源码,做以下笔记:

1. Engine打开一个domain,定位到控制domain的spider,并向spider请求第一个url用来抓取

2. Engine从spider得到用来抓取的第一个url,并作为request放到scheduler中

3. Engine向scheduler请求下一个抓取的url

4. scheduler返回下一个抓取的url给engine,engine将其发送到downloader,通过downloader middleware(请求方向)

5. 一旦网页完成下载downloader使用下载的页面生成一个response并将其发送到engine,通过downloader middleware(响应方向)

6. engine接收从downloader发来的response并将其发送到spider进行处理,通过spider middleware(输入方向)

7. spider处理response并返回scraped items和新的request给engine

8. engine发送由spider返回的scraped item给item pipeline,发送spider返回的request给scheduler

9. 重复第二步直到scheduler没有多余的request,此时engine关闭domain

你可能感兴趣的:(scrapy)