最近在學(xué)習(xí)Python爬蟲(chóng)坐求、想再自己本地MAC下搭建PySpider框架蚕泽,經(jīng)歷了步步為坑的遭遇。桥嗤。须妻。
首先安裝一下PySpider
我用的是Python3、pip3泛领,所以我下載操作都是以Python3荒吏、pip3 為主。
先打開(kāi)pyspider文檔:http://docs.pyspider.org/en/latest/
安裝命令:pip3 install pyspider
啟動(dòng):pyspinder all
第一個(gè)坑來(lái)了:
其實(shí)這個(gè)問(wèn)題就是pyspider中把a(bǔ)sync設(shè)置為關(guān)鍵字了渊鞋,而async可是python3.7的關(guān)鍵字啊绰更。所以解決辦法就是 打開(kāi):/usr/local/lib/python3.7/site-packages/pyspider/run.py,將async改為:asyncs(建議使用編輯器批量修改锡宋,具體改為什么儡湾、隨意)
改完之后、很多用戶(hù)可能會(huì)直接啟動(dòng):pyspider all? 結(jié)果發(fā)現(xiàn)還是不行
不過(guò)這次不是關(guān)鍵字沖突了员辩、這個(gè)是說(shuō): phantomjs 沒(méi)找到盒粮、需要安裝phantomjs。了解過(guò)pyspider的都知道奠滑、pyspider+phantomjs 配合是很好用的丹皱。接下來(lái)就安裝phantomjs?
1).下載phantomjs(http://phantomjs.org/download.html)官網(wǎng)下載mac版本
2).下載后直接解壓,將解壓后的phantomjs-2.1.1-macosx文件夾放到你想放的目錄下(隨意宋税、開(kāi)心就好)?
然后執(zhí)行:pwd? ?把路徑復(fù)制一份摊崭、備用
3).添加全局變量,終端輸入vim .bash_profile 添加語(yǔ)句(vim 語(yǔ)法相信大家是有點(diǎn)基礎(chǔ)的杰赛。這里簡(jiǎn)單列幾個(gè)一會(huì)用的上的呢簸。插入:i,退出:電腦的 esc 按鍵乏屯,:wq! 保存并關(guān)閉)
打開(kāi)后:i? ? ? 直接復(fù)制過(guò)去? export PATH=/你放的目錄路徑[上面 pwd 的結(jié)果]/phantomjs-2.1.1-macosx/bin:$PATH
5).終端輸入source .bash_profile? ? ?讓剛才的環(huán)境變量生效
6).終端輸入 phantomjs --version 檢測(cè)是否配置成功??
如果出現(xiàn)版本號(hào)根时、接OK了
接下來(lái)是不是想直接啟動(dòng)一下?pyspider all? 結(jié)果發(fā)現(xiàn)還是不行
這次出現(xiàn)的又是第一次出現(xiàn)的關(guān)鍵字沖突問(wèn)題? ---? 沒(méi)辦法、就是這么坑
一樣的操作辰晕、打開(kāi):/usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py蛤迎,將async改為:asyncs(建議使用編輯器批量修改,具體改為什么含友、隨意)
繼續(xù)測(cè)試替裆、啟動(dòng):pyspider all?
(這里簡(jiǎn)單說(shuō)一下校辩、每次啟動(dòng)的時(shí)候都會(huì)出現(xiàn)以下情況)
這個(gè)是端口占用問(wèn)一下、經(jīng)常使用linux 的人這個(gè)應(yīng)該不是什么問(wèn)題
處理方式:? ?查看占用端口的PID? ?lsof -i:25555? ? ? ? ? 殺死這個(gè)PID:kill -9 57349
接下來(lái)繼續(xù)啟動(dòng)辆童、你會(huì)發(fā)現(xiàn)宜咒,還是報(bào)錯(cuò)。把鉴。? 是不是醉了故黑,淡定、淡定纸镊、淡定……
其實(shí)這個(gè)還是老問(wèn)題:關(guān)鍵字占用問(wèn)題倍阐、同樣的去修改即可:
打開(kāi):/usr/local/lib/python3.7/site-packages/pyspider/webui/app.py? ? ?將async改為:asyncs(建議使用編輯器批量修改,具體改為什么逗威、隨意)
修改完、殺死進(jìn)程岔冀、啟動(dòng)
對(duì)凯旭、是的、又爆了…… 而且這個(gè)問(wèn)題比較尷尬使套,這個(gè)是pycurl 安裝錯(cuò)誤問(wèn)題罐呼、網(wǎng)上有好多教程
下面的操作是無(wú)效的
(? ?pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --compile? )
結(jié)果你會(huì)發(fā)現(xiàn)、不行侦高,怎么辦嫉柴?我測(cè)試了直接在github 上下載源碼、然后安裝奉呛,還是不行
別急计螺、解決方法來(lái)了:
pip3 uninstall pycurl# 卸載庫(kù)
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í)行完之后測(cè)試:?
OK!G谱场登馒!但是、但是咆槽、但是……別激動(dòng)陈轿,可能還有問(wèn)題
再次啟動(dòng):
是的、這是我遇到的最后一個(gè)坑了秦忿、
這是WsgiDAV發(fā)布了版本 pre-release 3.x導(dǎo)致的麦射,所以只要把版本降下來(lái)就好了。
執(zhí)行命令:pip3 install wsgidav==2.4.1
終于完成了灯谣、現(xiàn)在可以很?chē)虖埖膯?dòng)了
查看端口占用程序潜秋、殺死、啟動(dòng):
打開(kāi)瀏覽器:http:// localhost:5000 /