Scrapy框架結構及工作原理

2021-10-02 17:41:07 字數 1526 閱讀 8322

話不多說,先上圖1

首先,簡單了解一下scrapy框架中的各個元件

對於使用者來說,spider是最核心的元件,scrapy爬蟲開發是圍繞實現spider展開的。

接下來,看一下在框架中的資料流,有下表所示的3種物件。

request和response是http協議中的術語,即http請求和http響應,scrapy框架中定義了相應的request和response類,這裡的item代表spider從頁面中爬取的一項資料。

最後,我們來說明以上幾種物件在框架中的流動過程。

● 當spider要爬取某url位址的頁面時,需使用該url構造乙個request物件,提交給engine(圖1中的1)。

● request物件隨後進入scheduler按某種演算法進行排隊,之後的某個時刻scheduler將其出隊,送往**********(圖1中的2、3、4)。

● **********根據request物件中的url位址傳送一次http請求到**伺服器,之後用伺服器返回的http響應構造出個

response物件,其中包含頁面的html文字(圖1中的5)。

● response物件最終會被遞送給spider的頁面解析函式(構造request物件時指定)進行處理,頁面解析函式從頁面中提取資料,封裝成item後提交給engine,item之後被送往item pipelines進行處理,最終可能由exporter(圖1中沒有顯示)以某種資料格式寫入檔案(csv,json);另一方面,頁面解析函式還從頁面中提取鏈結(url),構造出新的request

物件提交給engine(圖1中的6、7、8)。

理解了框架中的資料流,也就理解了scrapy爬蟲的工作原理。如果把框架中的元件比作人體的各個器官,request和response物件便是血液,item則是代謝產物。

spider:老大要我處理***x.com

引擎:你把第乙個需要處理的url給我吧。

spider:給你,第乙個url是******x.com

引擎:hi!排程器,我這有request請求你幫我排序入隊一下。

排程器:好的,正在處理你等一下。

引擎:hi!排程器,把你處理好的request請求給我。

排程器:給你,這是我處理好的request

spider:(處理完畢資料之後對於需要跟進的url),hi!引擎,我這裡有兩個結果,這個是我需要跟進的url,還有這個是我獲取到的item資料。

引擎:hi !管道 我這兒有個item你幫我處理一下!排程器!這是需要跟進url你幫我處理下。然後從第四步開始迴圈,直到獲取完老大需要全部資訊。

管道``排程器:好的,現在就做!

springboot框架結構

dispatch2dao.xml templates.view 自定義包名 分類包名 html 頁面檔案 自定義 form 可用作 增 改 自定義 list 可用作 展示 自定義 view 可用作 檢視 base basecontroller 定義controller基類 base basedao ...

metasploit框架結構

輔助模組 aux 滲透攻擊模組 exploit 後攻擊模組 post 攻擊載荷模組 payloads 空指令模組 nops 編碼模組 encoders 規避 免殺 模組 evasion 載入其他模組 整合現有的一些外部安全工具 如nessus openvas漏洞掃瞄器等,為使用者介面提供一些新的功能...

Scrapy框架原理

1 scrapy engine scrapy引擎 scrapy引擎是用來控制整個系統的資料處理流程,並進行事務處理的觸發。更多的詳細內容可以看下面的資料處理流程。2 scheduler 排程 排程程式從scrapy引擎接受請求併排序列入佇列,並在scrapy引擎發出請求後返還給他們。4 spider...