Python爬蟲框架scrapy的用途及元件認識
Python爬蟲框架scrapy的用途及元件認識
今天簡述一下Scrapy框架的大致處理流程,以方便大家更好的理解Scrapy的執行過程.
Scrapy是一個快速、高層次螢幕抓取和web抓取python爬蟲框架,主要用於抓取特定web站點的資訊並從頁面中提取結構化的資料。
由於Scrapy的框架特性,也支援開發者根據自己的需求對框架進行修改,方便開發者開發出更適合的python爬蟲。除此之外,Scrapy還提供了多 種類型的爬蟲基類,包括BaseSpider、sitemap爬蟲等等,最新版本同時也提供了web2.0爬蟲的支援。下面我們一起來詳細的瞭解一下 Scrapy吧。
Scrappy的用途
Scrapy用途非常廣泛,除了抓取web站點資訊並從頁面提取結構化資料外,還可用於資料探勘、監測、自動化測試、資訊處理和歷史片(歷史記錄)打包等等。
Scrapy的元件
1、引擎,用來處理整個系統的資料流處理,觸發事務,引擎是一個專案的核心關鍵。
2、排程器,用來接受引擎發過來的請求,壓入佇列中,並在引擎再次請求的時候返回。
3、下載器,用於下載網頁內容,並將網頁內容返回給蜘蛛程式。
4、蜘蛛(item),蜘蛛是主要幹活的,用它來制訂特定域名或網頁的解析規則。
5、專案管道,負責處理有蜘蛛從網頁中抽取的專案,主要任務是清晰、驗證和儲存資料。當頁面被蜘蛛解析後,將被髮送到專案管道,並經過幾個特定的次序處理資料。
6、下載器中介軟體,位於Scrapy引擎和下載器之間的鉤子框架(回撥函式),主要是處理Scrapy引擎與下載器之間的請求及響應。
7、蜘蛛中介軟體,介於Scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。
8、排程中介軟體,介於Scrapy引擎和排程之間的中介軟體,從Scrapy引擎傳送到排程的請求和響應。
Scrapy資料處理流程
Scrapy的資料處理由Scrapy引擎進行控制,其處理流程為:
1、引擎開啟一個域名時,蜘蛛處理這個域名,並讓蜘蛛獲取第一個爬取的URL。
2、引擎從蜘蛛那獲取第一個需要爬取的URL,然後作為請求在排程中進行排程。
3、引擎從排程那獲取接下來進行爬取的頁面。
4、排程將下一個爬取的URL返回給引擎,引擎將他們通過下載中介軟體傳送到下載器。
5、當網頁被下載器下載完成以後,響應內容通過下載中介軟體被髮送到引擎。
6、引擎收到下載器的響應並將它通過蜘蛛中介軟體傳送到蜘蛛進行處理。
7、蜘蛛處理響應並返回爬取到的專案,然後給引擎傳送新的請求。
8、引擎將抓取到的專案專案管道,並向排程傳送請求。
9、系統重複第二部後面的操作,直到排程中沒有請求,然後斷開引擎與域之間的聯絡。