上篇咱们实现了分布式爬取,本篇来讲下爬虫的部署。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文件,地址在这里,有兴趣的能够尝试。