1. 程式人生 > >python3安裝scrapy之windows32位爬坑

python3安裝scrapy之windows32位爬坑

早就聽說scrapy不支援python3,而scrapy作為一款優秀的開源框架,不在新的python上整合一下實在可惜。最近剛好打算開始學習網路爬蟲,網上又有那麼多教程,so今天就來爬一下這個坑。
首先當然是安裝一下python,官網可以直接安裝最新的3.5.2。安裝完成以後,可以成功python後在cmd執行一下命令

pip install scrapy

ok,然後坐等執行結果。年輕人,你以為這就完了麼,too young too navie。等待十幾分鍾後,回頭來看,報錯了、

python的lxml報錯

python的scrapy安裝another Exception

word天吶,腫麼回事?!twisted下載98%,lxml報Exception,這都是什麼鬼咩?
別急,找尋度娘,原來這些都是執行scrapy所依賴的庫。好了,下面是正文,開始爬坑~
首先度娘,scrapy依賴的庫有twisted、lxml,而twisted依賴的庫又有zope.interface、pyopenssl。各位看官是不是已經略嫌煩人了,不要急,前途終歸是美好滴,但學習的路線總是曲折的~

一、安裝twisted庫

1. 安裝zope.interface。
我們可以先在python環境中執行一下命令 import zope.interface 來確定是否已安裝zope.interface,如果未報錯,那麼衷心祝賀你可以跳過這一步,直接進入下一步。如果報錯並出現如下圖的問題,那麼我們就來解決一下這個坑。
No Module named 'zope'
zope.interface這裡下載zope.interface。好吧,當你開啟連結點選右上角淺綠色按鈕Downloads的時候,又傻眼了!
download zope
因為zope的下載列表中的檔案很顯然只支援到py3.4!!!怎麼辦?那就只能先把檔案下載下來,然後看看其對py3.5的適配性是否良好了(捏一把汗!)。這裡我們下載最後一個檔案,然後雙擊執行。
zope安裝失敗


好吧,又navie了,於是這種方法方棄之。
接下來試一下直接安裝zope.interface的whl檔案。前提需要你的python安裝wheel,如果沒有安裝wheel可以在cmd中執行命令 pip install wheel 來安裝一下。我們下載。。。(此處省略一萬字)
zope之python35
納尼,zope的whl檔案居然有支援py3.5的,可是exe檔案卻沒有,簡直。。。折騰半天浪費糧食。好了,我們直接下載上圖中選中的whl檔案,然後在cmd中執行如下命令

pip install D:\Study\spider\scrapy\zope.interface-4.3.2-cp35-cp35m-win32.whl

zope安裝成功

看到Successfully字眼,好吧,zope.interface終於搞定。

2. 安裝pyopenssl。

這裡還是首先下載pyopenssl,開啟連結,依舊點選右上角淺綠色按鈕Downloads,然後下載列表中的第一個檔案。
下載pyopenssl
下載完成後,然後老規矩開啟cmd執行命令

pip install D:\Study\spider\scrapy\pyOpenSSL-16.2.0-py2.py3-none-any.whl

然後坐等成功安裝完成,好吧,然而往往事與願違~
pyopenssl安裝失敗
咩黎嘎?無奈再次求助度娘。(萬頭攢動火樹銀花之處不必找我,我在度娘溫暖的臂彎裡)
懷疑是cryptography庫沒有安裝,於是執行一下命令 pip install cryptography
could not find a version that satisfied the requirement cryptography>=1.3.4
安裝cryptography成功,並可以看到其版本為1.5.2。於是回頭繼續安裝pyopenssl,執行命令

pip install D:\Study\spider\scrapy\pyOpenSSL-16.2.0-py2.py3-none-any.whl

pyopenssl安裝成功
好吧,幸福來得太突然,讓人猝不及防。果然,還是要靜心多思考。next。
3. 安裝twisted。
依舊到官網下載 twisted安裝檔案。
下載twisted16.5
這裡沒有找到對應py3.5版本的twisted,所以先直接下載最新的twisted版本16.5。
我們直接下載列表中的第一項whl檔案,下載完成後,在cmd中執行命令:

pip install D:\Study\spider\scrapy\Twisted-16.5.0-cp27-cp27m-win_amd64.whl

前排小凳子,坐等結果。。。
twisted16.5安裝失敗
版本不支援,看了一下安裝的twisted是64位的。於是繼續搞起,找找32位的twisted。
皇天不負有心人,在這裡找到了32位的twisted。於是果斷下載下來,執行命令安裝。
twisted15.4下載
twisted15.4安裝失敗
好吧,看來是因為安裝的python版本是3.5,而twisted的版本沒有匹配到。可是官網最新的版本16.5表示財支援到python2.7版本,而且還是64位的。
皇阿瑪,你憋走,我要哭會哭會、、、
經過幾個小時的折騰,終於發現了人民群眾的智慧力量是無窮的,找到一篇文章,裡面提供了野生的twisted cp35版本可供下載。
twisted python3.5版本下載
好吧,請容許我賣弄一下自己的武鬥學問:真真兒是踏破鐵鞋無覓處,得來全不費工夫~
好了,下載完成後執行命令:

pip install D:\Study\spider\scrapy\Twisted-16.5.0-cp35-cp35m-win32.whl

twisted python3.5版本成功安裝
久違的Successfully,太想念你了啊!

二、安裝lxml

下載lxml cp35版本

下載完成後執行命令

pip install D:\Study\spider\scrapy\lxml-3.6.4-cp35-cp35m-win32.whl

lxml cp35 安裝成功。

ok,老實說先在越來越稀罕pip這個功能了~

三、最後安裝scrapy

萬里長城終於走到最後一步了,那麼久一鼓作氣,來下載scrapy

下載scrapy

下載完成後,我們在cmd中執行命令

pip install D:\Study\spider\scrapy\Scrapy-1.2.1-py2.py3-none-any.whl

time out python安裝scrapy

如果安裝過程中出現上圖的錯誤,千萬不要擔心,那是因為網路原因,下載超時了,這時候呢就多試幾遍命令,反正唐僧西天取經最後拿到經書了還有一難呢。

scrapy安裝成功

吶,最後所有依賴都安裝成功了包括scapy。上面的紅色部分意思就是說沒有成功編譯pyDispatcher的wheel檔案,但是最後python自動重新安裝了pyDispatcher,而且也出現可Successfully字眼。

那麼,接下來的最後的最後,經歷了這麼多就是測試scrapy是否能正常工作。在cmd中直接輸入scrapy,看到如下圖所示:

scrapy測試

那麼,恭喜你,大功告成!