部署scrapy爬虫的后台服务,提供了基于JSON的Webservice API管理
安装
pip install scrapyd # 服务端
pip install scrapyd-client # 客户端(提供scrapyd-deploy套件)
启动
scrapyd
启动后会创建如下文件等
- 服务配置
/etc/scrapyd/scrapyd.conf
- 日志
/var/log/scrapyd/scrapyd.log
- 标准输出
/var/log/scrapyd/scrapyd.out
- 标准错误
/var/log/scrapyd/scrapyd.err
- 数据文件(eggs、队列等)
/var/lib/scrapyd/
爬虫部署
- 编辑
scrapy.cfg
配置部署节点(忽略指定部署节点则成为默认部署配置)
[deploy:部署节点]
url = http://部署地址.com/api/scrapyd
username = 账号
password = 密码
project = 项目
version = GIT
- 检查部署节点
- 检查当前部署节点列表:
scrapyd-deploy -l
- 检查指定节点已部署的爬虫:
scrapyd-deploy -L 部署节点
- 检查当前部署节点列表:
- 发布爬虫
scrapyd-deploy [部署节点|-a -p 项目]
API管理爬虫
curl http://localhost:6800/daemonstatus.json #服务状态
curl http://部署地址.com:6800/schedule.json -d project=项目 -d spider=爬虫 [-d setting=xxx -d jobid=xxx] #启动爬虫
curl http://部署地址.com:6800/cancel.json -d project=项目 -d job=xxx #取消爬虫
curl http://部署地址.com:6800/listprojects.json #罗列项目
curl http://部署地址.com:6800/listspiders.json?project=myproject #罗列指定项目的爬虫
curl http://部署地址.com:6800/delproject.json -d project=myproject #删除项目
WEB监控管理
监控地址:http://部署地址.com:6800/
结语
个人感觉此系统功能比较鸡肋