python爬蟲框架-scrapy簡介

本博客內容來自於拓海的博客
1、框架簡介
這裏寫圖片描述
組件
Engine: 引擎負責控制數據流在系統中所有組件中流動,並在相應動作發生時觸發事件。
Scheduler: 調度器從引擎接受Request並將他們入隊,以便之後引擎請求他們時提供給引擎。
Downloader: 下載器負責獲取頁面數據並提供給引擎,而後提供給Spider。
Spiders: Spider是Scrapy用戶編寫的用於分析Response並提取Item或提取更多需要下載的URL的類。 每個Spider負責處理特定網站。
Item Pipeline: 負責處理被Spider提取出來的Item。典型的功能有清洗、 驗證及持久化操作。
Downloader middlewares: 下載器中間件是在Engine及Downloader之間的特定鉤子(specific hooks),處理Downloader傳遞給Engine的Response。 其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。
Spider middlewares: 是在Engine及Spider之間的特定鉤子(specific hook),處理Spider的輸入(Response)和輸出(Items及Requests)。 其提供了一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。

數據流
Scrapy中的數據流由執行引擎控制,其過程如下:
Engine從Spider獲取第一個需要爬取URL(s)。
Engine用Scheduler調度Requests,並向Scheduler請求下一個要爬取的URL。
Scheduler返回下一個要爬取的URL給Engine。
Engine將URL通過Downloader middlewares轉發給Downloader。
一旦頁面下載完畢,下載器生成一個該頁面的Response,並將其通過Downloader middlewares發送給Engine。
引擎從Downloader中接收到Response並通過Spider middlewares發送給Spider處理。
Spider處理Response並返回爬取到的Item及新的Request給Engine。
Engine將爬取到的Item給Item Pipeline,然後將Request給Scheduler。
從第一步開始重複這個流程,直到Scheduler中沒有更多的URLs。

發佈了49 篇原創文章 · 獲贊 10 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章