python-Scrapy爬蟲框架介紹(整個數據的流程)

python-Scrapy爬蟲框架介紹

隨着在家的線上教育的進行,課程的深入學習,所要學習的內容和作業也在不斷的增多,所以沒有過多的自己的時間去學習新的爬蟲知識,但疫情逐漸的在好轉,我也很是期待開學的那一天,畢竟線上教育的效果沒有在學校的更爲顯著,主要是老師們錄課很辛苦🙃

今天我想和兄弟們分享一下Scrapy爬蟲的原理,也是自己最近剛學習的,有什麼不足的地方兄弟們可以評論你或者私信喔。Python爬蟲的框架主流的有pyspider和Scrapy(自我感覺),但我感覺Scrapy更好,擴展力更高,供能和爬取的效率也非常強大。

(圖片來源於百度)
在這裏插入圖片描述
這是Scrapy的框架圖

主要由引擎(核心),項目,調度器,蜘蛛,下載器四大部分構成。

Engine(引擎)。整個框架的核心,用來處理整個系統的數據流,出發事務 ,說白了就好像咱們的大腦一樣。

Item(項目)。定義了爬取結果的數據結構,爬取的數據會被賦值爲Item對象。自我理解,用來存放爬取的數據。

Scheduler(調度器)。接受引擎發過來的請求並將其加入隊列當中,引擎再次請求的時候將請求返回給引擎。在一個大的爬蟲項目中,不會只有一個對網站的請求,其用來存放請求,並對其的先後進行調度。

Downloader(下載器)。下在爬取內容,並將網頁內容返回給蜘蛛。

Spiders(蜘蛛)。其定義了爬取的邏輯和王爺的解析規則,主要負責解析相應並提取結果和新的請求。這個也就是咱們需要自己定義手動編寫代碼的部分。

Item Pipeline(項目管道)。負責處理有蜘蛛從網頁中抽取的項目,主要負責清洗,驗證和存儲數據。

Downloader Middlewares(下載器中間件)。位於引擎和下載器之間的鉤子框架。主要處理引擎和下載器之間的響應請求。

Spider Middlewares(蜘蛛中間件)。位於引擎和蜘蛛之間的鉤子,主要處理向蜘蛛輸入的響應和輸出的結果以及新的請求。

以上就是每個組件所承擔的功能,中間件只需要知道它是如何運作的並不需要它是如何編寫的。

整個爬取的流程:

1.引擎首先打開一個網站,找到處理該網站的Spider,並向該Spider請求第一個爬取的URL。

2.獲取URL後,通過Scheduler以Request的形式調度。

3.接着向Scheduler請求下一個要爬取的URL。

4.Scheduler返回下一個URL給Engine,Engine將URL通過下載器中間件轉發給下載器下載。

5.一旦下載完畢,Downloader生成該網頁的Response,通過下載器中間件發送給Engine。

6.Engine收到響應後,通過蜘蛛中間件發送給Spider進行處理。

7.Spider處理Response,並返回提取到的Item(結果)以及新的Request給Engine。

8.Engine將Spider返回的Item賦值給Item,將新的Request給Scheluder。

9.重複第二步到第八步,直到Scheduler中沒有更多的Requset請求,Engine關閉該網站,爬取結束。

可以從整個的數據流的過程看出,Engine(引擎)起了至關重要的作用,幾乎所有的操作都要通過引擎進行處理,所以在編寫代碼的時候要重點關注。理解整個爬蟲的 流程,有利於自己代碼的編寫,心中有數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章