上篇咱們實現了分佈式爬取,本篇來講下爬蟲的部署。html
分析:咱們上節實現的分佈式爬蟲,須要把爬蟲打包,上傳到每一個遠程主機,而後解壓後執行爬蟲程序。這樣作運行爬蟲也能夠,只不過若是之後爬蟲有修改,須要從新修改好代碼後,從新打包上傳而後執行(固然你願意每臺登上去後修改代碼也行)。本篇咱們使用scrapd來進行部署。python
使用scrapyd來部署爬蟲大致只須要幾步:json
pip install scrapyd (須要運行爬蟲的主機都要安裝)vim
pip install scrapyd-client (本機主機安裝便可,做用是爲了把爬蟲項目部署到遠程主機的scrapyd去)api
[root@kongqing /]# whereis scrapyd scrapyd: /etc/scrapyd /root/.pyenv/shims/scrapyd [root@kongqing /]# cd /etc/scrapyd [root@kongqing scrapyd]# ls scrapyd.conf [root@kongqing scrapyd]# vim scrapyd.conf
bind_address=0.0.0.0 #修改成0.0.0.0可使用其餘任意主機進行鏈接
解釋一波:瀏覽器
固然,目前裏面尚未項目,因此jobs、logs裏面都是空的。服務器
[settings] default = lagou.settings [deploy] #url = http://localhost:6800/ #本地的直接能運行,我就不改了 project = lagou [deploy:aliyun] #:後面是別名,本身設置,用來識別部署的是哪臺設備,避免弄混 url = http://47.98.xx.xx:6800/ #遠程主機的地址及端口 project = lagou
解釋一波:網絡
打開API文檔看一下,咱們能夠看到有如下這些方法:curl
這裏只解釋兩個用法,其餘的本身看文檔。scrapy
shedule.json:運行一個爬蟲(會返回一個jobid),文檔示例用法以下:
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider
cancel.json:中止一個爬蟲(須要有jobid),文檔示例用法以下:
$ curl http://localhost:6800/cancel.json -d project=myproject -d job=6487ec79947edab326d6db28a2d86511e8247444
如今咱們啓動咱們本身在遠程主機上的爬蟲項目。
curl http://47.98.xx.xx:6800/schedule.json -d project=lagou -d spider=lagou_c #修改成本身的遠程主機IP,項目名是lagou,spider名字是lagou_c
curl http://47.98.xx:xx/cancel.json -d project=lagou -d job=1aae6d70f51f11e8983600163e0403c8 (須要修改成本身的遠程主機IP,項目名稱,job就是以前運行時候的jobid
這樣咱們使用scrapyd就完成了爬蟲部署到遠程服務器的過程,若是你以爲使用網絡API調用的方式不習慣的話,也能夠用scrapyd_api來調用,不過須要生成egg文件,地址在這裏,有興趣的能夠嘗試。