一篇文章教會你理解Scrapy網路爬蟲框架的工作原理和資料採集過程
今天小編給大家詳細的講解一下Scrapy爬蟲框架,希望對大家的學習有幫助。
1、Scrapy爬蟲框架
Scrapy是一個使用Python程式語言編寫的爬蟲框架,任何人都可以根據自己的需求進行修改,並且使用起來非常的方便。它可以應用在資料採集、資料探勘、網路異常使用者檢測、儲存資料等方面。
Scrapy使用了Twisted非同步網路庫來處理網路通訊。整體架構大致如下圖所示。

Scrapy爬蟲框架
2、由上圖可知Scrapy爬蟲框架主要由5個部分組成,分別是:Scrapy Engine(Scrapy引擎),Scheduler(排程器),Downloader(下載器),Spiders(蜘蛛),Item Pipeline(專案管道)。爬取過程是Scrapy引擎傳送請求,之後排程器把初始URL交給下載器,然後下載器向伺服器傳送服務請求,得到響應後將下載的網頁內容交與蜘蛛來處理,爾後蜘蛛會對網頁進行詳細的解析。蜘蛛分析的結果有兩種:一種是得到新的URL,之後再次請求排程器,開始進行新一輪的爬取,不斷的重複上述過程;另一種是得到所需的資料,之後會轉交給專案管道繼續處理。專案管道負責資料的清洗、驗證、過濾、去重和儲存等後期處理,最後由Pipeline輸出到檔案中,或者存入資料庫等。
3、這五大元件及其中介軟體的功能如下:
1) Scrapy引擎:控制整個系統的資料處理流程,觸發事務處理流程,負責串聯各個模組
2) Scheduler(排程器):維護待爬取的URL佇列,當接受引擎傳送的請求時,會從待爬取的URL佇列中取出下一個URL返回給排程器。
3) Downloader(下載器):向該網路伺服器傳送下載頁面的請求,用於下載網頁內容,並將網頁內容交與蜘蛛去處理。
4) Spiders(蜘蛛):制定要爬取的網站地址,選擇所需資料內容,定義域名過濾規則和網頁的解析規則等。
5) Item Pipeline(專案管道):處理由蜘蛛從網頁中抽取的資料,主要任務是清洗、驗證、過濾、去重和儲存資料等。
6) 中介軟體(Middlewares):中介軟體是處於Scrapy引擎和Scheduler,Downloader,Spiders之間的構件,主要是處理它們之間的請求及響應。
Scrapy爬蟲框架可以很方便的完成網上資料的採集工作,簡單輕巧,使用起來非常方便。
4、 基於Scrapy的網路爬蟲設計與實現
在瞭解Scrapy爬蟲原理及框架的基礎上,本節簡要介紹Scrapy爬蟲框架的資料採集過程。
4.1 建立爬蟲專案檔案
基於scrapy爬蟲框架,只需在命令列中輸入“scrapy startproject article”命令,之後一個名為article的爬蟲專案將自動建立。首先進入到article資料夾下,輸入命令“cd article”,之後通過“dir”檢視目錄,也可以通過“tree /f”生成檔案目錄的樹形結構,如下圖所示,可以很清晰的看到Scrapy建立命令生成的檔案。

爬蟲專案目錄結構
頂層的article資料夾是專案名,第二層中包含的是一個與專案名同名的資料夾article和一個檔案scrapy.cfg,這個與專案同名的資料夾article是一個模組,所有的專案程式碼都在這個模組內新增,而scrapy.cfg檔案是整個Scrapy專案的配置檔案。第三層中有5個檔案和一個資料夾,其中__init__.py是個空檔案,作用是將其上級目錄變成一個模組;items.py是定義儲物件的檔案,決定爬取哪些專案;middlewares.py檔案是中介軟體,一般不用進行修改,主要負責相關元件之間的請求與響應;pipelines.py是管道檔案,決定爬取後的資料如何進行處理和儲存;settings.py是專案的設定檔案,設定專案管道資料的處理方法、爬蟲頻率、表名等;spiders資料夾中放置的是爬蟲主體檔案(用於實現爬蟲邏輯)和一個__init__.py空檔案。
4.2 之後開始進行網頁結構與資料分析、修改Items.py檔案、編寫hangyunSpider.py檔案、修改pipelines.py檔案、修改settings.py檔案,這些步驟的具體操作後期會文章專門展開,在此不再贅述。
4.3 執行爬蟲程式
修改上述四個檔案之後,在Windows命令符視窗中輸入cmd 命令進入到爬蟲所在的路徑,並執行“scrapy crawl article”命令,這樣就可以執行爬蟲程式了,最後儲存資料到本地磁碟上。
5、 結束語
隨著網際網路資訊的與日俱增,利用網路爬蟲工具來獲取所需資訊必有用武之地。使用開源的Scrapy爬蟲框架,不僅可以實現對web上資訊的高效、準確、自動的獲取,還利於研究人員對採集到的資料進行後續的挖掘分析。