python爬蟲隨筆-scrapy架構(1)——scrapy架構的安裝和結構介紹

來源:互聯網
上載者:User

標籤:自己   教學   item   latest   err   模板   art   mic   requests   

scrapy架構簡介

Scrapy,Python開發的一個快速、高層次的螢幕抓取和web抓取架構,用於抓取web網站並從頁面中提取結構化的資料。Scrapy用途廣泛,可以用於資料採礦、監測和自動化測試。(引用自:百度百科)

scrapy官方網站:https://scrapy.org/

scrapy官方文檔:https://doc.scrapy.org/en/latest/

scrapy架構安裝

首先我們安裝scrapy,使用如下命令

pip install scrapy

此時很多人應該都會遇到如下問題

error: Microsoft Visual C++ 10.0 is required.Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279

這是因為scrapy中使用了許多C++的內容,所以在安裝時需要首先有C++ 10.0環境。最直接的解決辦法就是下載並安裝Microsoft Visual C++ 10.0。但為此下一個這麼大的環境,配置又是蛋疼的巨硬風,實在令人畏懼。

所以筆者建議採用第二種方式,我們仔細觀察到pip報錯前正在運行

Running setup.py clean for TwistedFailed to build Twisted

也就是說是安裝Twisted模組時出錯了,那麼我們可以選擇手動下載Twisted模組並安裝。python的各種庫有很多下載地,不少人可能會下載到 Twisted-xx.x.x.tar.bz2 ,解壓後進行安裝,發現會出現同樣的錯誤。此時我們仔細觀察之前安裝scrapy時的資訊,就會發現,pip指令自動安裝時其實也是採用的下載 bz2 檔案,解壓,運行解壓出的setup.py檔案,所以這與我們上述的手動安裝過程並沒有任何區別。

筆者推薦一個網站https://www.lfd.uci.edu/~gohlke/pythonlibs,此網站中包含幾乎所有常用的python庫。例如我們此次需要下載Twisted庫,那麼我們在網頁中搜尋Twisted,然後下載自己對應位元和python版本的Twisted庫。然後在Twisted下載位置運行cmd,執行如下命令(記得替換為自己下載的檔案名稱)

pip install Twisted-xx.x.x-cpxx-cpxxm-win_amd64.whl

然後我們只需要等待其運行完成安裝,至此我們安裝好了scrapy必須的Twisted庫,然後我們重新執行

pip install scrapy

安裝成功!

在安裝過程中,我們可以看到它為我們下載了許多輔助庫,這使得scrapy成為了一個完整的成體系的爬蟲架構,這些架構極大地簡化了我們的編程難度,降低了學習成本。

scrapy是基於requests庫搭建的,所以我們還需要執行以下命令

pip install requests

至此,我們已經完成了scrapy爬蟲架構的安裝。

scrapy爬蟲模板介紹

scrapy是一個系統的架構,使用前的準備工作與其他一些爬蟲庫相比略顯複雜,但這有限的幾步,能夠極大地降低我們後續編程的難度。

由於我們現在對scrapy架構還不熟悉,所以我們使用scrapy內建的命令來產生scrapy的模板。此次我們以爬取jobbole為例。

如,首先,我們使用如下命令

scrapy startproject jobboleSpider

這樣我們就能在當前路徑下建立了一個scrapy爬蟲項目,但這個項目此時還不完整,所以我們根據它的提示使用以下命令建立一個scrapy內建的模板

cd jobboleSpiderscrapy genspider jobbole http://blog.jobbole.com/all-posts/

根據提示資訊,我們知道了我們使用了scrapy的"basic"模板成功建立了一個scrapy項目並構建了基本的結構。那麼接下來我們開啟IDE來瞭解一下我們建立的模板。

其中scrapy.cfg使我們的全域設定檔,包含我們的設定檔案路徑,項目名稱等。

jobbole.py是我們以後實現爬蟲邏輯的主要檔案。

items.py是我們的定義資料儲存結構的檔案。

middlewares.py包含了大量中介軟體,例如下載中介軟體,重新導向中介軟體,是scrapy引擎與其他部分代碼之間發送資訊的重要通道。

pipelines.py正如其名,是一個管道,主要用於將我們獲得的資料儲存到資料庫中。

setteings.py則由大量關於scrapy的設定,例如是否遵循robot協議等。

結語

至此我們已經實現了scrapy的安裝和基本架構的實現,但還沒有進行具體的編程,接下來筆者將會帶著大家首先實現對jobbole“最新文章”的所有文章的爬取,以初步體驗到scrapy爬蟲的樂趣。然後逐步深入到類比登陸,突破反爬蟲限制等。

我會盡量詳細的說明我的每一步操作,以實現一個“小白教程”。後面的教程中我們會使用到xpath和Regex,限於篇幅,筆者對這兩個知識點只會進行一些基本的教學,如果大家想要熟練運用的話,最好能夠查閱其他一些資料進行更深入的學習。

python爬蟲隨筆-scrapy架構(1)——scrapy架構的安裝和結構介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.