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

scrapy框架簡介

Scrapy,Python開發的一個快速、高層次的屏幕抓取和web抓取框架,用於抓取web站點並從頁面中提取結構化的數據。Scrapy用途普遍,能夠用於數據挖掘、監測和自動化測試。(引用自:百度百科)python

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

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報錯前正在運行scrapy

Running setup.py clean for Twisted
Failed to build Twisted

也就是說是安裝Twisted模塊時出錯了,那麼咱們能夠選擇手動下載Twisted模塊並安裝。python的各類庫有不少下載地,很多人可能會下載到 Twisted-xx.x.x.tar.bz2 ,解壓後進行安裝,發現會出現一樣的錯誤。此時咱們仔細觀察以前安裝scrapy時的信息,就會發現,pip指令自動安裝時其實也是採用的下載 bz2 文件,解壓,運行解壓出的setup.py文件,因此這與咱們上述的手動安裝過程並無任何區別。ide

筆者推薦一個網站https://www.lfd.uci.edu/~gohlke/pythonlibs,此網站中包含幾乎全部經常使用的python庫。例如咱們這次須要下載Twisted庫,那麼咱們在網頁中搜索Twisted,而後下載本身對應位數和python版本的Twisted庫。而後在Twisted下載位置運行cmd,執行以下命令(記得替換爲本身下載的文件名)post

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 jobboleSpider
scrapy genspider jobbole http://blog.jobbole.com/all-posts/

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

scrapy basic模板

其中scrapy.cfg使咱們的全局配置文件,包含咱們的設置文件路徑,項目名稱等。

jobbole.py是咱們之後實現爬蟲邏輯的主要文件。

items.py是咱們的定義數據儲存結構的文件。

middlewares.py包含了大量中間件,例以下載中間件,重定向中間件,是scrapy引擎與其餘部分代碼之間發送信息的重要通道。

pipelines.py正如其名,是一個管道,主要用於將咱們得到的數據儲存到數據庫中。

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

結語

至此咱們已經實現了scrapy的安裝和基本框架的實現,但尚未進行具體的編程,接下來筆者將會帶着你們首先實現對jobbole「最新文章」的全部文章的爬取,以初步體驗到scrapy爬蟲的樂趣。而後逐步深刻到模擬登錄,突破反爬蟲限制等。

我會盡可能詳細的說明個人每一步操做,以實現一個「小白教程」。後面的教程中咱們會使用到xpath和正則表達式,限於篇幅,筆者對這兩個知識點只會進行一些基本的教學,若是你們想要熟練運用的話,最好可以查閱其餘一些資料進行更深刻的學習。

相關文章
相關標籤/搜索