数据流向图:
![](https://img.haomeiwen.com/i1370011/a3be891e6a48dad7.png)
1:Engine从Spider中得到第一个Requests进行爬取
2:ENGIN将Request放入SCHEDULER调度器,并且获取下个Request
3:SCHEDULER将Requests返回给ENGINE(因为ENGING进行任务调度)
4:ENGINE发送Requests到Downoader,通过Downloader Middlewares 进行处理(这一步进行Http请求,返回response)
5:通过Downloader Middleware进行资源下载(就是html信息),如果下载完成,通过Dowloader生成一个Resonse并且发送给ENGINE
6: ENGINE 从DOWNLOADER接收 Resonse,并将Resonse发送给Spider进行处理。Spider通过Spider Middleware进行处理Response
7: Spider处理Response 并且返回items和新的Requests给ENGINE,这部分处理通过Spilder Middleware进行处理
8:Engine发送items到item Pipelines 然后 发送 Request到Scheduler 并且 获取下个Request进行处理
9:重复第一个步骤进行处理。
组件:
Scrapy Engine:
在scrapy中engine是核心部分,负责协调、调度其他组件和触发处理任务
Scheduler:
一个消息队列,由Engine来控制消息的进出。消息从spider中获取,写入。 engine又从scheduler中取出消息,进行解析
Downloader:
负责接收请求,下载页面,返回response
Spiders:
spider是用户自定义类,用来j解析response、提取Items
Items Pipeline:
Pipeline负责处理Items.例如:清洗,验证,持久化等
网友评论