最近在學(xué)習(xí)Python爬蟲、想再自己本地MAC下搭建PySpider框架,經(jīng)歷了步步為坑的遭遇。。。
首先安裝一下PySpider
我用的是Python3、pip3,所以我下載操作都是以Python3、pip3 為主。
先打開pyspider文檔:http://docs.pyspider.org/en/latest/
安裝命令:pip3 install pyspider
啟動(dòng):pyspinder all
第一個(gè)坑來了:

其實(shí)這個(gè)問題就是pyspider中把a(bǔ)sync設(shè)置為關(guān)鍵字了,而async可是python3.7的關(guān)鍵字啊。所以解決辦法就是 打開:/usr/local/lib/python3.7/site-packages/pyspider/run.py,將async改為:asyncs(建議使用編輯器批量修改,具體改為什么、隨意)
改完之后、很多用戶可能會(huì)直接啟動(dòng):pyspider all? 結(jié)果發(fā)現(xiàn)還是不行

不過這次不是關(guān)鍵字沖突了、這個(gè)是說: phantomjs 沒找到、需要安裝phantomjs。了解過pyspider的都知道、pyspider+phantomjs 配合是很好用的。接下來就安裝phantomjs?
1).下載phantomjs(http://phantomjs.org/download.html)官網(wǎng)下載mac版本
2).下載后直接解壓,將解壓后的phantomjs-2.1.1-macosx文件夾放到你想放的目錄下(隨意、開心就好)?
然后執(zhí)行:pwd? ?把路徑復(fù)制一份、備用
3).添加全局變量,終端輸入vim .bash_profile 添加語句(vim 語法相信大家是有點(diǎn)基礎(chǔ)的。這里簡單列幾個(gè)一會(huì)用的上的。插入:i,退出:電腦的 esc 按鍵,:wq! 保存并關(guān)閉)
打開后:i? ? ? 直接復(fù)制過去? export PATH=/你放的目錄路徑[上面 pwd 的結(jié)果]/phantomjs-2.1.1-macosx/bin:$PATH
5).終端輸入source .bash_profile? ? ?讓剛才的環(huán)境變量生效
6).終端輸入 phantomjs --version 檢測是否配置成功??

如果出現(xiàn)版本號、接OK了
接下來是不是想直接啟動(dòng)一下?pyspider all? 結(jié)果發(fā)現(xiàn)還是不行
這次出現(xiàn)的又是第一次出現(xiàn)的關(guān)鍵字沖突問題? ---? 沒辦法、就是這么坑

一樣的操作、打開:/usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py,將async改為:asyncs(建議使用編輯器批量修改,具體改為什么、隨意)
繼續(xù)測試、啟動(dòng):pyspider all?
(這里簡單說一下、每次啟動(dòng)的時(shí)候都會(huì)出現(xiàn)以下情況)

這個(gè)是端口占用問一下、經(jīng)常使用linux 的人這個(gè)應(yīng)該不是什么問題
處理方式:? ?查看占用端口的PID? ?lsof -i:25555? ? ? ? ? 殺死這個(gè)PID:kill -9 57349
接下來繼續(xù)啟動(dòng)、你會(huì)發(fā)現(xiàn),還是報(bào)錯(cuò)。。? 是不是醉了,淡定、淡定、淡定……

其實(shí)這個(gè)還是老問題:關(guān)鍵字占用問題、同樣的去修改即可:
打開:/usr/local/lib/python3.7/site-packages/pyspider/webui/app.py? ? ?將async改為:asyncs(建議使用編輯器批量修改,具體改為什么、隨意)
修改完、殺死進(jìn)程、啟動(dòng)

對、是的、又爆了…… 而且這個(gè)問題比較尷尬,這個(gè)是pycurl 安裝錯(cuò)誤問題、網(wǎng)上有好多教程
下面的操作是無效的
(? ?pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --compile? )
結(jié)果你會(huì)發(fā)現(xiàn)、不行,怎么辦?我測試了直接在github 上下載源碼、然后安裝,還是不行
別急、解決方法來了:
pip3 uninstall pycurl# 卸載庫
export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include# openssl相關(guān)頭文件路徑
pip3 install pycurl --compile --no-cache-dir # 重新編譯安裝
執(zhí)行完之后測試:?

OK!??!但是、但是、但是……別激動(dòng),可能還有問題
再次啟動(dòng):

是的、這是我遇到的最后一個(gè)坑了、
這是WsgiDAV發(fā)布了版本 pre-release 3.x導(dǎo)致的,所以只要把版本降下來就好了。
執(zhí)行命令:pip3 install wsgidav==2.4.1

終于完成了、現(xiàn)在可以很囂張的啟動(dòng)了
查看端口占用程序、殺死、啟動(dòng):

打開瀏覽器:http:// localhost:5000 /
