一、部署详解
1、scrapyd组件
github地址:https://github.com/scrapy/scrapyd
官方文档:http://scrapyd.readthedocs.io/en/stable/
2、安装
pip install scrapyd
如果出现和python3不兼容的问题,打开python包管理的网站:https://pypi.org/ ,搜索scrapyd,找到一个兼容的版本安装。
3、启动
scrapyd
会回显它是在http://127.0.0.1:6800/ 上监听的。linux上是http://0.0.0.0:6800/
4、怎样部署项目?
借助scrapyd-client:
gitbub地址:https://github.com/scrapy/scrapyd-client
安装pip install scrapyd-client
使用详见官方文档。
5、修改项目
修改scrapy.cfg文件[deploy],添加远程主机url = http://123.206.65.37:6800/addversion.json 。
输入命令scrapyd-deploy
帮助我们完成项目的部署。远程部署到主机上了。
输入命令curl http://123.206.65.37:6800/listprojects.json
可以看到已经上传成功了。
输入命令curl http://123.206.65.37:6800/schedule.json -d project=zhihuuser -d spider=zhihu
指定项目和spider远程开启调度进程。
连续输入三个curl http://123.206.65.37:6800/schedule.json -d project=zhihuuser -d spider=zhihu
则开启三个调度进程。
输入命令curl http://123.206.65.37:6800/listjobs.json\?project\=zhihuuser
可以查看当前运行的任务。也可以在浏览器里查看。
输入命令curl http://123.206.65.37:6800/cancel.json -d project=zhihuuser -d job=35a3bce034hkk2j4kl232l43hjkl
指定job代号停止任务。
6、python-scrapyd-api库
是对scrapyd相关api做了一个封装。这样可以在python代码中调用scrapyd的api了,就不必用curl接口请求的方式调度了。
gitbub地址:https://github.com/djm/python-scrapyd-api
安装pip install python-scrapyd-api
命令行里测试下:1
2
3
4
5from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI('http://123.206.65.37:6800')
scrapyd.list_projects()
scrapyd.list_spiders(zhihuuser)
持续更新…
最后更新: 2018年08月16日 17:38
原始链接: http://pythonfood.github.io/2018/07/05/Scrapy分布式的部署详解/