Python的Scrapy框架解析
一.為什么使用Scrapy框架?
Scrapy是一個快速、高層次的屏幕抓取和web抓取的框架,可用于數(shù)據(jù)挖掘、監(jiān)測和自動化檢測,任何人都可以根據(jù)需要去進行修改。
二.Scrapy框架每個組件介紹
1.Scrapy引擎(Scrapy Engine
):負責控制數(shù)據(jù)流在系統(tǒng)的所以組件中的流動,并在相應(yīng)動作發(fā)生時觸發(fā)事件。
2.調(diào)度器(Scheduler
):從引擎接受reques并將其入隊,便于以后請求它們提供給引擎。
3.下載器(Downloader
):負責獲取網(wǎng)頁數(shù)據(jù)并且提供給引擎,然后提供給Spider。
4.Spiders
: 指Scrapy用戶編寫用于分析response并且提取item或額外跟進的URL類人。每個Spider負責處理一些特定網(wǎng)站。
5.Item Pipeline
:負責處理被Spider提取出來的item。典型的處理有清潔、驗證及持久化
6.下載器中間件(Downloader Middlewares
):指在引擎及下載器之間的特定鉤子(specific hook
),處理Downloader 傳遞給引擎的response。它提供一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。
7.Spiders中間件(Spider Middlewares
):指在引擎及Spider之間的特定鉤子(specific hook
),處理Spider 的輸入(response
)和輸出(items
及requests
)。它提供一個簡便的機制,通過插入自定義代碼來擴展Scrapy功能。
三.Scrapy框架工作原理
1.引擎向spider要URL
2.引擎將要爬取的URL給調(diào)度器
3.調(diào)度器會將URL生成請求對象放入指定的隊列中
4.從隊列中出隊一個請求
5.引擎將請求交給下載器進行處理
6.下載器發(fā)送請求獲取互聯(lián)網(wǎng)數(shù)據(jù)
7.下載器將數(shù)據(jù)返回給引擎
8.引擎將數(shù)據(jù)再次給到spiders
9.spiders通過xpath解析該數(shù)據(jù),得到數(shù)據(jù)或URL
10.spiders將數(shù)據(jù)或URL給到引擎
11.引擎判斷該數(shù)據(jù)是URL還是數(shù)據(jù),交給管道處理,URL交給調(diào)度器處理
12.當調(diào)度器里沒有任何數(shù)據(jù)之后,整個程序停止
下面是我根據(jù)工作原理畫的可以結(jié)合去看:
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Django drf使用Django自帶的用戶系統(tǒng)的注冊功能
本文主要介紹了Django drf使用Django自帶的用戶系統(tǒng)的注冊功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02Python對HTML轉(zhuǎn)義字符進行反轉(zhuǎn)義的實現(xiàn)方法
這篇文章主要介紹了Python對HTML轉(zhuǎn)義字符進行反轉(zhuǎn)義的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04python實現(xiàn)不同文件夾下的函數(shù)相互調(diào)用
這篇文章主要介紹了python實現(xiàn)不同文件夾下的函數(shù)相互調(diào)用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08