Windows7下安裝html
一、執行easy_install Scrapy
python
Centos6.5下安裝數據庫
一、庫文件安裝yum install libxslt-devel libxml2-devel網絡
二、將系統自帶python2.6的easy_install備份,使用python2.7.10升級後的easy_install架構
mv /usr/bin/easy_install /usr/bin/easy_install_2.6框架
ln -s /usr/local/python/2.7.10/bin/easy_install /usr/bin/easy_installpython2.7
三、安裝pyasn1異步
pip install pyasn1scrapy
四、下載libffi 編譯安裝ide
wget ftp://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz
tar -zxvf libffi-3.2.1.tar.gz
cd libffi-3.2.1
./configure
make
make install
環境變量配置
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
LD_LIBRARY_PATH加入/usr/local/lib64
四、安裝cryptography
pip install cryptography
五、安裝Scrapy
easy_install Scrapy
六、備份python2.6的scrapy
mv /usr/bin/scrapy /usr/bin/scrapy2.6
七、使用python2.7.10的scrapy
ln -s /usr/local/python/2.7.10/bin/scrapy /usr/bin/scrapy
參考
http://www.cnblogs.com/rwxwsblog/p/4557123.html?utm_source=tuicool&utm_medium=referral
http://www.cnblogs.com/txw1958/archive/2012/07/12/scrapy_installation_introduce.html
所謂網絡爬蟲,就是一個在網上處處或定向抓取數據的程序,固然,這種說法不夠專業,更專業的描述就是,抓取特定網站網頁的HTML數據。不過因爲一個網站 的網頁不少,而咱們又不可能事先知道全部網頁的URL地址,因此,如何保證咱們抓取到了網站的全部HTML頁面就是一個有待考究的問題了。
通常的方法是,定義一個入口頁面,而後通常一個頁面會有其餘頁面的URL,因而從當前頁面獲取到這些URL加入到爬蟲的抓取隊列中,而後進入到新新頁面後再遞歸的進行上述的操做,其實說來就跟深度遍歷或廣度遍歷同樣。
上面介紹的只是爬蟲的一些概念而非搜索引擎,實際上搜索引擎的話其系統是至關複雜的,爬蟲只是搜索引擎的一個子系統而已。下面介紹開源的爬蟲框架Scrapy。
1、概述
Scrapy是一個用 Python 寫的 Crawler Framework ,簡單輕巧,而且很是方便,而且官網上說已經在實際生產中在使用了,不過如今尚未 Release 版本,能夠直接使用他們的 Mercurial 倉庫裏抓取源碼進行安裝。
Scrapy 使用 Twisted 這個異步網絡庫來處理網絡通信,架構清晰,而且包含了各類中間件接口,能夠靈活的完成各類需求。總體架構以下圖所示:
綠線是數據流向,首先從初始 URL 開始,Scheduler 會將其交給 Downloader 進行下載,下載以後會交給 Spider 進行分析,Spider 分析出來的結果有兩種:一種是須要進一步抓取的連接,例如以前分析的「下一頁」的連接,這些東西會被傳回 Scheduler ;另外一種是須要保存的數據,它們則被送到 Item Pipeline 那裏,那是對數據進行後期處理(詳細分析、過濾、存儲等)的地方。另外,在數據流動的通道里還能夠安裝各類中間件,進行必要的處理。
最新架構圖
2、組件
一、Scrapy Engine(Scrapy引擎)
Scrapy引擎是用來控制整個系統的數據處理流程,並進行事務處理的觸發。更多的詳細內容能夠看下面的數據處理流程。
二、Scheduler(調度)
調度程序從Scrapy引擎接受請求並排序列入隊列,並在Scrapy引擎發出請求後返還給他們。
三、Downloader(下載器)
下載器的主要職責是抓取網頁並將網頁內容返還給蜘蛛( Spiders)。
四、Spiders(蜘蛛)
蜘蛛是有Scrapy用戶本身定義用來解析網頁並抓取制定URL返回的內容的類,每一個蜘蛛都能處理一個域名或一組域名。換句話說就是用來定義特定網站的抓取和解析規則。
蜘蛛的整個抓取流程(週期)是這樣的:
五、Item Pipeline(項目管道)
項目管道的主要責任是負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲數據。當頁面被蜘蛛解析後,將被髮送到項目管道,並通過幾個特定的次序處理數據。每一個項目管道的組件都是有一個簡單的方法組成的Python類。他們獲取了項目並執行他們的方法,同時他們還須要肯定的是是否須要在項目管道中繼續執行下一步或是直接丟棄掉不處理。
項目管道一般執行的過程有:
六、Downloader middlewares(下載器中間件)
下載中間件是位於Scrapy引擎和下載器之間的鉤子框架,主要是處理Scrapy引擎與下載器之間的請求及響應。它提供了一個自定義的代碼的方式來拓展 Scrapy的功能。下載中間器是一個處理請求和響應的鉤子框架。他是輕量級的,對Scrapy盡享全局控制的底層的系統。
七、Spider middlewares(蜘蛛中間件)
蜘蛛中間件是介於Scrapy引擎和蜘蛛之間的鉤子框架,主要工做是處理蜘蛛的響應輸入和請求輸出。它提供一個自定義代碼的方式來拓展Scrapy的功 能。蛛中間件是一個掛接到Scrapy的蜘蛛處理機制的框架,你能夠插入自定義的代碼來處理髮送給蜘蛛的請求和返回蜘蛛獲取的響應內容和項目。
八、Scheduler middlewares(調度中間件)
調度中間件是介於Scrapy引擎和調度之間的中間件,主要工做是處從Scrapy引擎發送到調度的請求和響應。他提供了一個自定義的代碼來拓展Scrapy的功能。
3、數據處理流程
Scrapy的整個數據處理流程有Scrapy引擎進行控制,其主要的運行方式爲:
參考
http://blog.sina.com.cn/s/blog_72995dcc0101kgty.html
http://scrapy-chs.readthedocs.org/zh_CN/latest/topics/architecture.html