【2020-03-13 更新了網盤鏈接】
之前用爬蟲抓點數據的時候基本上就是urllib3+BeautifulSoup4,后來又加入requests,大部分情況就夠用了。但是最近心血來潮想學一下Scrapy,於是找了本書——《精通Python爬蟲框架Scrapy》。內容算是比較可以的,但是按書中附錄搭建環境着實折騰了一點時間,於是想把碰到的問題總結一下,讓大家也少走點彎路。
進入正題之前,有幾點要說明一下:
- 安裝這個環境有什么用?這個環境就是一個服務器,有需要你抓的網站,不會因現實中的網站改版而造成代碼失效,書中測試代碼的網站基本上都基於這個服務器進行的;
- 書中默認的操作系統是Linux,只需要按書中的命令一個一個輸入就行了,也可以參考這篇https://blog.csdn.net/calmseason/article/details/96745478,這里要介紹的是Windows下的環境搭建;
- 安裝過程中需要從國外服務器下載一些鏡像文件,不少於3.0G,下載速度就只能呵呵了;
- 安裝docker-toolbox需要操作系統是64位系統。
言歸正傳,開始吧。
一、安裝Scrapy
我一般用pip安裝各種庫,只有一點值得注意一下,就是從pypi.org下載實在是一言難盡,於是:
pip install scrapy -i https://pypi.douban.com/simple
二、安裝Vagrant
Vagrant Windows版32位下載地址,64位下載地址。安裝就不多說了。
三、安裝Docker Toolbox
關於這個書里介紹得比較簡單,詳細的內容需要自行到https://www.docker.com/docker-toolbox去研究。當然Docker的網站也讓我想吐槽一下,看半天也不知道下載入口在哪里,WTF!
docker-toolbox下載地址
我查了很多網上一些資料,有些說還要安裝VirtualBox、Git等,但是實際上不需要,安裝完Docker-toolbox之后會自動安裝。
四、安裝PowerShell 3.0
因為我的系統是Windows 7,在執行后面的vagrant up命令時候提示了一個錯誤:“The version of powershell currently installed on this host is less than the required minumum version”,索性還是裝了。
注意安裝時需要啟動Windows Update服務。下載地址
五、克隆scrapy示例項目
直接到github去下載就行了,書中有鏈接,或者
git clone https://github.com/scalingexcellence/scrapybook.git
六、開始配置
cd scrapybook-master
啟動之前,我碰到了執行vagrant up時總會提示錯誤的問題,最終解決辦法就是需要手動啟動docker:
docker-start.cmd
接着就是最扯淡的啟動過程了。先創建box:
vagrant box add lookfwd/scrapybook https://vagrantcloud.com/lookfwd/boxes/scrapybook/versions/1.0.0/providers/virtualbox.box
注意:
- 網上很多人說box的名稱可以隨意取名,但是經我試驗,只能用“lookfwd/scrapybook”,“/”也不要用錯了,否則后面還會重新下載鏡像文件。
- 上面命令中的virtualbox.box鏡像下載會非常慢,最好有梯子,沒有的我在文末提供了網盤下載;
- 使用下載后的本地文件添加box時,請使用命令:
vagrant box add lookfwd/scrapybook -f 你的保存路徑\virtualbox.box #注意改路徑
最后就是:
vagrant up --no-parallel
需要花幾分鍾時間來執行完,可惜我又碰到一個問題(VBOX_E_FILE_ERROR):
注意到其中有個(VERR_DISK_FULL),實際上就是我的磁盤滿了,F*CK!默認虛擬機全放了C盤,好吧,都這個時候了我也不想再折騰了。果斷清理系統盤。
點擊桌面的Docker Quickstart Terminal,測試!OK!
七、總結一下
- 先注意自己操作系統,要64位,Windows 7的話還要注意PowerShell版本;
- 建議事先用某雷下載好需要的軟件;
- 不能完全相信書中的說法,在牆內什么都可能發生;
- 需要的virtualbox鏡像我放在 bd網盤,2.7G,鏈接: https://pan.baidu.com/s/1FcdZKB_FP35xL3ZxtboO-w 提取碼: mgmf 。過期或者網盤下載慢的話可以留言給我。