爬蟲框架scrapy(3)五大核心組件
scrapy 五大核心組件的工作流程
當執行爬蟲文件時,5大核心組件就在工作了
spiders 引擎(Scrapy Engine)管道(item Pipeline)調度器(Scheduler)下載器(Downloader)
首先執行爬蟲文件spider,spider的作用是
(1)解析(2)發請求,原始的url存儲在於spider中
1:當spider執行的時候,首先對起始的url發送請求,將起始url封裝成請求對象
2:將請求對象傳遞給引擎
3:引擎將請求對象傳遞給調度器(內部含有隊列和過濾器兩個機制),調度器將請求存儲在隊列(先進先出)中
4:調度器從隊列中調度出url的相應對象再將請求傳遞給引擎
5:引擎將請求對象通過下載中間件發送給下載器
6:下載器拿到請求到互聯網上去下載
7:互聯網將下載好的數據封裝到響應對象給到下載器
8:下載器將響應對象通過下載中間件發送給引擎
9:引擎將封裝了數據的響應對象回傳給spider類parse方法中的response對象
10:spider中的parse方法被調用,response就有了響應值
11:在spider的parse方法中進行解析代碼的編寫;
(1)會解析出另外一批url,(2)會解析出相關的文本數據
12: 將解析拿到的數據封裝到item中
13:item將封裝的文本數據提交給引擎
14:引擎將數據提交給管道進行持久化存儲(一次完整的請求數據)
15:如果parder方法中解析到的另外一批url想繼續提交可以繼續手動進行發請求
16:spider將這批請求對象封裝提交給引擎
17:引擎將這批請求對象發配給調度器
16:這批url通過調度器中過濾器過濾掉重復的url存儲在調度器的隊列中
17:調度器再將這批請求對象進行請求的調度發送給引擎
引擎作用:
1:處理流數據 2:觸發事物
引擎根據相互的數據流做判斷,根據拿到的流數據進行下一步組件中方法的調用
下載中間件: 位於引擎和下載器之間,可以攔截請求和響應對象;攔截到請求和響應對象後可以
篡改頁面內容和請求和響應頭信息。
爬蟲中間件:位於spider和引擎之間,也可以攔截請求和響應對象,不常用。
爬蟲框架scrapy(3)五大核心組件