標籤:python 爬蟲 pyspider phantomjs
本篇文章的目的有兩個:
1.記錄搭建爬蟲環境的過程
2.總結爬蟲項目的心得體會
一、系統內容
該方案在32位ubuntu10.04和64位centos6.9上面測試通過,所需要用到的軟體如下:
1.ubuntu10.04或者centos6.9任選其一,下文主要以centos6.9來說明
2.pyspider原始碼,可以從這裡下載到http://download.csdn.net/detail/king_bingge/8582249,也可以從官網下載https://github.com/binux/pyspider
3.對於phantomjs,因為該爬蟲項目中使用到flash,而最新版本中的phantomjs是去掉了flash外掛程式支援的(當然這裡是為了phantomjs更高的效率),所以我選擇了保留了flash外掛程式的phantomjs版本,可以從這裡下載到http://download.csdn.net/detail/king_bingge/8582351
4.當然,既然我們使用了pyspider,那麼你的系統肯定要支援python,我系統的python版本為2.7.7,你可以從這裡下載到http://download.csdn.net/detail/king_bingge/8582267
5.為了讓phantomjs支援flash,那麼你還需要下載一個flash外掛程式,對於falsh外掛程式,你可以從這裡下載到http://download.csdn.net/detail/king_bingge/8582273。,當然,官網或許是一個更好的選擇。
到這裡為止,我們所需要的主要軟體都已經具備了,下面就開始進行環境的搭建
二、安裝phantomjs
1.在安裝phantomjs之前,先要安裝依賴的環境
yum install -y xorg-x11-server-Xvfb xorg-x11-server-Xorg xorg-x11-fonts* dbus-x11 xulrunner.x86_64 nspr.x86_64 nss.x86_64yum install -y flash-plugin nspluginwrapper
2.然後執行 rpm -ivh phantomjs-1.9-1.x86_64.rpm,完成之後,執行下面:
[root@localhost pyspider]# phantomjs -v1.10.0 (development)[root@localhost pyspider]#
能看到版本資訊
3.然後執行下面的命令,查看命令列參數:
[[email protected] pyspider]# phantomjs -hUsage: phantomjs [switchs] [options] [script] [argument [argument [...]]]Options: --cookies-file=<val> Sets the file name to store the persistent cookies --config=<val> Specifies JSON-formatted configuration file --debug=<val> Prints additional warning and debug message: ‘true‘ or ‘false‘ (default) --disk-cache=<val> Enables disk cache: ‘true‘ or ‘false‘ (default) --ignore-ssl-errors=<val> Ignores SSL errors (expired/self-signed certificate errors): ‘true‘ or ‘false‘ (default) --load-images=<val> Loads all inlined images: ‘true‘ (default) or ‘false‘ --load-plugins=<val> Loads all plugins: ‘true‘ (default) or ‘false‘
我們能夠看到有一個–load-plugins=參數,這就是我們家在外掛程式所需要帶上的參數。
4.千萬別忘了還有一點,我們的flash外掛程式還沒有安裝
解壓:tar -xf install_flash_player_11_linux.x86_64.tar.gz
cp libflashplayer.so /usr/lib/mozilla/plugins
cp ./usr/* /usr
這樣即可成功安裝。可以使用adobe flash player 了。
5.那麼如何測試我們安裝的phantomjs 是否成功了呢?下面給出一個測試指令碼:
var page = require(‘webpage‘).create();page.open(‘http://www.dhs.state.il.us/accessibility/tests/flash/video.html‘, function () { window.setTimeout(function(){ page.render(‘video.png‘); phantom.exit(); },10000);});
將上面內容儲存為test.js
然後執行命令: ./phantomjs –load-plugins=yes test.js
查看一下:目前的目錄下面是不是有video.png的呀,這就是flash播放時候的。
至此,你已經完成了phantomjs 的安裝
更多詳細的內容參考:http://www.ryanbridges.org/2013/05/21/putting-the-flash-back-in-phantomjs/
三、安裝pyspider
接下來開始進入正題了,安裝pyspider
1.後續我們安裝pyspider所需要的包都通過pip來進行安裝,所以在這這錢我們要確保系統已經安裝了pip,如果沒有安裝的話,現在pip原始碼,進行安裝
代碼可以從這裡下載到:https://pypi.python.org/packages/source/p/pip,也可以從這裡下載到:http://download.csdn.net/detail/king_bingge/8582399
進行安裝
#解壓tar -zxvf pip-6.1.1.tar.gzcd pip-6.1.1#安裝python setup.py install這個時候會報錯說少了setuptools從setuptools官網 https://pypi.python.org/pypi/setuptools下載setuptools原來#解壓tar -zxvf setuptools-3.6.tar.gz cd setuptools-3.6#安裝python setup.py install
2.安裝pip完成之後,執行命令
[root@localhost pyspider-master]# pip install -r requirements.txt
3.之後在執行
pip install pyspider
4.運行./run.py,訪問 http://192.168.1.1:5000/ ,看到如下介面就說明你大功告成了:
到這裡為止,環境搭建完畢
後續會講解一個執行個體:使用該環境實現一個建議爬蟲項目。
python+pyspider+phantomjs實現簡易爬蟲功能