用scrapy框架的时候,一定要先明白执行的顺序:
spiders的yeild将request发送给引擎,
引擎 对request不做任何处理发送给 调度器,
调度器( url调度器),生成request交给 引擎,
引擎 拿到request,通过 中间件 进行层层过滤发送给 下载器,
下载器 在网上获取到response数据之后,又经过 中间件 进行层层过滤发送给 引擎,
引擎 获取到response数据之后,返回给 spisers,spiders的parse()方法对获取到的response数据进行处理,解析出items或者requests,
将解析出来的items或者requests发送给 引擎,
引擎 获取到items或者requests,将items发送给 管道,将requests发送给 调度器 ,
注意!只有当调度器中不存在任何request了,整个程序才会停止,(也就是说,对于下载失败的URL,Scrapy也会重新下载。)
网友评论