前言
爬蟲寫完了去扣,很多時(shí)候本機(jī)部署就可以了,但是總有需要部署到服務(wù)器的需求樊破,網(wǎng)上的文章也比較多愉棱,復(fù)制的也比較多,從下午3點(diǎn)鐘摸索到晚上22點(diǎn)捶码,這里記錄一下汁雷。
環(huán)境情況
- 我的系統(tǒng)是Deepin
- 開發(fā)環(huán)境也是Deepin,python 環(huán)境用的是Anaconda建立的虛擬環(huán)境(python3.6)
- 部署系統(tǒng)是本機(jī)的Deepin
- 部署環(huán)境由于在本機(jī)部署错览,所以跟開發(fā)環(huán)境一致(就是這里有個(gè)坑)
- 用到的服務(wù)是scrapyd
參考文章
網(wǎng)上對(duì)于scrapy部署的文章真是很多琳骡,一搜就很多頁(yè)結(jié)果,但是我看很多都是復(fù)制粘貼祈纯,命令錯(cuò)了也沒(méi)改令宿。我的是綜合多個(gè)文章來(lái)實(shí)際執(zhí)行的,這里列一下我看過(guò)的文章:
- http://www.reibang.com/p/694a56b2199a 【scrapyd部署scrapy項(xiàng)目】
- http://www.reibang.com/p/495a971233b5 【scrapyd+supervisor在ubuntu部署scrapy項(xiàng)目】
- http://www.reibang.com/p/f0077adb74bb 【使用Scrapyd部署爬蟲】
- http://blog.csdn.net/qq_40717846/article/details/79014132 【搭建分布式架構(gòu)爬取知乎用戶信息】
介紹
Scrapyd是scrapinghub官方提供的爬蟲管理腕窥、部署粒没、監(jiān)控的方案,文檔傳送
安裝scrapyd
對(duì)于它的安裝簇爆,網(wǎng)上的說(shuō)法層出不窮癞松,有可能是老版本吧?
我的安裝很簡(jiǎn)單入蛆,在本機(jī)虛擬環(huán)境中 pip isntall scrapyd响蓉,就完成了
沒(méi)有安裝scrapyd-client也沒(méi)有安裝scrapyd-deploy,就是這么簡(jiǎn)簡(jiǎn)單單哨毁。
使用
它的使用有3個(gè)步驟
1枫甲、為了檢查是否安裝正確,在電腦任意一個(gè)地方打開終端(再次強(qiáng)調(diào),我的電腦系統(tǒng)是linux)想幻,輸入scrapyd粱栖,如果沒(méi)有報(bào)錯(cuò),請(qǐng)打開 http://localhost:6800 ,看到如下畫面則代表服務(wù)啟動(dòng)成功脏毯,看到啟動(dòng)成功后就可以關(guān)閉了闹究。
2、到scrapy工程目錄內(nèi)打開的scrapy.cfg文件抄沮,將原代碼改為:
[settings]
default = future.settings
[deploy]
url = http://localhost:6800/
project = Gxrcpro
保存即可
如果是在服務(wù)器上面部署(重要跋核,服務(wù)器跟本機(jī)設(shè)置不同),除了改bind端口為0.0.0.0外
bind端口更改地址:
anaconda3/envs/pspiders/lib/python3.6/site-packages/scrapyd
里面有個(gè)名為default_scrapyd.conf的文件叛买,其中有一個(gè)設(shè)置是:
bind_address = 127.0.0.1
要將它改為 0.0.0.0
還需要
[settings]
default = future.settings
[deploy]
url = http://0.0.0.0:6800/
project = Gxrcpro
設(shè)置成0.0.0.0砂代,否則會(huì)提示name or service not known
3、由于之前在本地隨意目錄下打開scrapyd率挣,導(dǎo)致爬蟲啟動(dòng)失敗刻伊,后來(lái)經(jīng)過(guò)群友[wally小饅頭]的幫助才知道失敗是因?yàn)樘摂M環(huán)境的問(wèn)題,這次需要用到pycharm椒功。
在pycharm里面打開teminal捶箱,然后輸入命令scrapyd
接著看到服務(wù)啟動(dòng),通過(guò)teminal左上角的綠色+號(hào)打開新的teminal窗口动漾,在窗口輸入命令:
scrapyd-deploy -p Gxrcpro
這里的Gxrc和Gxrcpro跟上面的cfg文件設(shè)置有關(guān)
如果收到一下信息就代表這次命令成功執(zhí)行:
Packing version 1516456705
Deploying to project "Gxrcpro" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "ranbo-PC", "status": "ok", "project": "Gxrcpro", "version": "1516456705", "spiders": 1}
接著執(zhí)行啟動(dòng)爬蟲的命令:
curl http://localhost:6800/schedule.json -d project=Gxrcpro -d spider=gxrc
這里的Gxrcpro跟上面的cfg文件設(shè)置有關(guān),而gxrc是你寫代碼時(shí)候填寫的爬蟲名字
收到如下信息:
{"node_name": "ranbo-PC", "status": "ok", "jobid": "5a6c4016fdec11e7ad5800e070785d37"}
則代表這次成功啟動(dòng)爬蟲丁屎,可以通過(guò)localhost:6800/Jobs來(lái)查看爬蟲運(yùn)行基本情況。
通過(guò)log可以看到爬蟲的信息旱眯,如果是正在跑數(shù)據(jù)晨川,則應(yīng)該可以在log里面看到爬出來(lái)的數(shù)據(jù);如果是出錯(cuò)删豺,則會(huì)看到報(bào)錯(cuò)信息(之前我的環(huán)境路徑不對(duì)共虑,就是能啟動(dòng),但是報(bào)錯(cuò)呀页,爬蟲就停止了)