
image.png
用scrapy框架的時候,一定要先明白執(zhí)行的順序:
spiders的yeild將request發(fā)送給引擎,
引擎 對request不做任何處理發(fā)送給 調(diào)度器,
調(diào)度器( url調(diào)度器),生成request交給 引擎,
引擎 拿到request,通過 中間件 進行層層過濾發(fā)送給 下載器,
下載器 在網(wǎng)上獲取到response數(shù)據(jù)之后,又經(jīng)過 中間件 進行層層過濾發(fā)送給 引擎,
引擎 獲取到response數(shù)據(jù)之后,返回給 spisers,spiders的parse()方法對獲取到的response數(shù)據(jù)進行處理,解析出items或者requests,
將解析出來的items或者requests發(fā)送給 引擎,
引擎 獲取到items或者requests,將items發(fā)送給 管道,將requests發(fā)送給 調(diào)度器 ,
注意!只有當(dāng)調(diào)度器中不存在任何request了,整個程序才會停止,(也就是說,對于下載失敗的URL,Scrapy也會重新下載。)