Scrapy框架原理

2022-02-11 15:20:04 字數 1616 閱讀 8224

1、scrapy engine(scrapy引擎)

scrapy引擎是用來控制整個系統的資料處理流程,並進行事務處理的觸發。更多的詳細內容可以看下面的資料處理流程。

2、scheduler(排程)

排程程式從scrapy引擎接受請求併排序列入佇列,並在scrapy引擎發出請求後返還給他們。

4、spiders(蜘蛛)

蜘蛛是有scrapy使用者自己定義用來解析網頁並抓取制定url返回的內容的類,每個蜘蛛都能處理乙個網域名稱或一組網域名稱。換句話說就是用來定義特定**的抓取和解析規則。

蜘蛛的整個抓取流程(週期)是這樣的:

首先獲取第乙個url的初始請求,當請求返回後調取乙個**函式。第乙個請求是通過呼叫start_requests()方法。該方法預設從start_urls中的url中生成請求,並執行解析來呼叫**函式。

在**函式中,你解析**的內容,同程使用的是xpath選擇器(但是你也可以使用beautifusoup, lxml或其他任何你喜歡的程式),並生成解析的資料項。

最後,從蜘蛛返回的專案通常會進駐到專案管道。

5、item pipeline(專案管道)

專案管道的主要責任是負責處理有蜘蛛從網頁中抽取的專案,他的主要任務是清晰、驗證和儲存資料。當頁面被蜘蛛解析後,將被傳送到專案管道,並經過幾 個特定的次序處理資料。每個專案管道的元件都是有乙個簡單的方法組成的python類。他們獲取了專案並執行他們的方法,同時他們還需要確定的是是否需要 在專案管道中繼續執行下一步或是直接丟棄掉不處理。

專案管道通常執行的過程有:

清洗html資料

驗證解析到的資料(檢查專案是否包含必要的字段)

檢查是否是重複資料(如果重複就刪除)

將解析到的資料儲存到資料庫中

7、spider middlewares(蜘蛛中介軟體)

蜘蛛中介軟體是介於scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。它提供乙個自定義**的方式來拓展scrapy 的功能。蛛中介軟體是乙個掛接到scrapy的蜘蛛處理機制的框架,你可以插入自定義的**來處理傳送給蜘蛛的請求和返回蜘蛛獲取的響應內容和專案。

8、scheduler middlewares(排程中介軟體)

排程中介軟體是介於scrapy引擎和排程之間的中介軟體,主要工作是處從scrapy引擎傳送到排程的請求和響應。他提供了乙個自定義的**來拓展scrapy的功能。

三、資料處理流程

scrapy的整個資料處理流程有scrapy引擎進行控制,其主要的執行方式為:

引擎開啟乙個網域名稱,時蜘蛛處理這個網域名稱,並讓蜘蛛獲取第乙個爬取的url。

引擎從蜘蛛那獲取第乙個需要爬取的url,然後作為請求在排程中進行排程。

引擎從排程那獲取接下來進行爬取的頁面。

蜘蛛處理響應並返回爬取到的專案,然後給引擎傳送新的請求。

引擎將抓取到的專案專案管道,並向排程傳送請求。

四、驅動器

scrapy是由twisted寫的乙個受歡迎的python事件驅動網路框架,它使用的是非堵塞的非同步處理。如果要獲得更多關於非同步程式設計和twisted的資訊,請參考下面兩條鏈結。

Scrapy框架結構及工作原理

話不多說,先上圖1 首先,簡單了解一下scrapy框架中的各個元件 對於使用者來說,spider是最核心的元件,scrapy爬蟲開發是圍繞實現spider展開的。接下來,看一下在框架中的資料流,有下表所示的3種物件。request和response是http協議中的術語,即http請求和http響應...

基於Scrapy爬蟲框架的執行原理

scrapy是乙個非常強大的第三方庫,也是乙個提高爬蟲效率的框架,入門較難。框架內部包含模組可以描述為 5 2 模組,包含 spiders,item piplines engine scheduler 而engine和spiders,之間包含了兩個中間鍵模組,因此叫 5 2 模組。從spider經過...

scrapy爬蟲框架(一) scrapy框架簡介

開啟命令列輸入如下命令 pip install scrapy安裝完成後,python會自動將 scrapy命令新增到環境變數中去,這時我們就可以使用 scrapy命令來建立我們的第乙個 scrapy專案了。開啟命令列,輸入如下命令 scrapy startproject yourproject這裡的...