Scrapyd 的远程部署和监控
1. 安装Scrapyd
sudo pip3.6 install scrapyd # 安装scrapyd服务
sudo pip3.6 install scrapyd-client # 安装scrapyd客户端
1.1 修改default_scrapyd.conf文件 使外部能访问
vim /usr/local/python3.6/lib/python3.6/site-packages/scrapyd/default_scrapyd.conf
bind_address = 127.0.0.1 改成 bind_address = 0.0.0.0 # 通过ip访问
2. 启动scrapyd服务
scrapyd # 启动服务,端口号 6800
远程连接: 打开浏览器,192.168.105.99:6800
3. 部署scrapy项目到scrapyd上的配置
# 1. scrapyd的配置名
[deploy:scrapy_Tencent]
# 2. 启动scrapyd服务的远程主机ip,localhost默认本机的
url = http://localhost:6800/
#url = http:192.168.xx.xxx:6800
#- 3.项目名称
project = Tencent
4. 将scrapy项目部署到scrapyd上
# -p 执行项目名,将Tencent按指定的配置信息部署到scrapyd
scrapyd-deploy scrapy_Tencent -p Tencent
5. 启动项目下指定的爬虫
curl http://localhost:6800/schedule.json -d project=Tencent -d spider=tencent {"status": "ok", "jobid": "2f240b1171bc11e7ae5aa45e60e36247", "node_name": "PowerMac.local"}
6. 停止项目下指定的爬虫
curl http://localhost:6800/cancel.json -d project=Tencent -d job=2f240b1171bc11e7ae5aa45e60e36247
7. 停止scrapyd的服务
Control + C
远程部署和访问scrapyd
1.查看服务器是否开启了6800端口 scrapyd默认端口是6800
2.更改默认访问地址:
1.cd /use/lib/python3.6/site-packages/scrapyd(find / -name scrapyd)
2.bind_address = 127.0.0.1 更改为bind_address = 0.0.0.0(default_scrapyd)
3.解决报错0.0.0.0报错
1.cd /use/lib/python3.6/site-packages/twisted/names (find / -name server.py)
2.python3.6 server.py
scrapyd 代码
import requests
# ---------------------------------------------------------------------------
# scrapy-deploy scraoy_crm -p CRM
# ---------------------------------------------------------------------------
# 查看scraoyd负载状态
daemonstatus_url = 'http://localhost:6800/daemonstatus.json'
response = requests.get(url=daemonstatus_url, verify=False)
response = {"status": "ok", "running": "0", "pending": "0", "finished": "0", "node_name": "node-name"} # ---------------------------------------------------------------------------
# 将项目添加到scrapyd中,有就覆盖,没有就创建
addversion_url = 'http://localhost:6800/addversion.json'
addversion_data = {
'project': '', # 项目名称
'version': '', # 版本号
}
response = requests.post(url=addversion_url, data=addversion_data, verify=False)
response = {"status": "ok", "spiders": 3} # ---------------------------------------------------------------------------
# 运行scrapyd服务中爬虫
schedule_url = 'http://localhost:6800/schedule.json'
schedule_data = {
'project': '', # 项目名称
'spider': '', # 爬虫名称
'setting': '', # 运行爬虫的setting中的设置, 可选
'jobid': '', # 运行爬虫生产的id 关闭爬虫时候需要这个id 可选
'_version': '', # 使用的项目版本
}
response = requests.post(url=schedule_url, data=schedule_data, verify=False)
response = {"status": "ok", "jobid": "6487ec79947edab326d6db28a2d86511e8247444"}
# ---------------------------------------------------------------------------
# 停止scrapyd中的爬虫
cancel_url = 'http://localhost:6800/cancel.json'
cancel_data = {
'project': '', # 项目名称
'job': '', # 要停止的爬虫id
}
response = requests.post(url=cancel_url, data=cancel_data, verify=False)
response = {"status": "ok", "prevstate": "running"}
# ---------------------------------------------------------------------------
# 获取上传到scrapyd上的项目列表
listprojects_url = 'http://localhost:6800/listprojects.json'
response = requests.get(url=listprojects_url, verify=False)
response = {"status": "ok", "projects": ["myproject", "otherproject"]}
# ---------------------------------------------------------------------------
# 获取项目可用的版本列表
listverions_url = 'http://localhost:6800/listversions.json?project=myproject'
response = requests.get(url=listverions_url, verify=False)
response = {"status": "ok", "versions": ["r99", "r156"]}
# ---------------------------------------------------------------------------
# 获取爬虫可用的版本列表
listspiders_url = 'ttp://localhost:6800/listspiders.json?project=myproject'
response = requests.get(url=listspiders_url, verify=False)
response = {"status": "ok", "spiders": ["spider1", "spider2", "spider3"]}
# ---------------------------------------------------------------------------
# 获取scrapyd项目中运行状态
listjobs_url = 'http://localhost:6800/listjobs.json?project=myproject'
response = requests.get(url=listjobs_url, verify=False)
response = {"status": "ok",
"pending": [{"id": "78391cc0fcaf11e1b0090800272a6d06", "spider": "spider1"}],
"running": [{"id": "422e608f9f28cef127b3d5ef93fe9399", "spider": "spider2",
"start_time": "2012-09-12 10:14:03.594664"}],
"finished": [{"id": "2f16646cfcaf11e1b0090800272a6d06", "spider": "spider3",
"start_time": "2012-09-12 10:14:03.594664", "end_time": "2012-09-12 10:24:03.594664"}]}
# ---------------------------------------------------------------------------
# 删除项目版本
delversion_url = 'http://localhost:6800/delversion.json'
delversion_data = {
'project': '', # 项目名称
'version': '', # 版本号
}
response = requests.post(url=listjobs_url, data=delversion_data, verify=False)
response = {"status": "ok"}
# ---------------------------------------------------------------------------
# 删除项目所有版本
delproject_url = 'http://localhost:6800/delproject.json'
delproject_data = {
'project': '', # 项目名称
}
response = requests.post(url=delproject_url, data=delproject_url, verify=False)
response = {"status": "ok"}
# ---------------------------------------------------------------------------
Scrapyd 的远程部署和监控的更多相关文章
- 推荐 远程部署 fabric
自己写的一个例子: from fabric.api import run, env env.hosts = ['nanjing','hefei','haerbin','lanzhou','taiyua ...
- 部署zabbix监控平台(源码安装)
案例:部署Zabbix监控平台 1 问题 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 安装LNMP环境 源码安装Zabbix 安装监控端主机,修改基本 ...
- CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)
Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...
- 【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理
SpringBoot1.x 开发热部署和监控管理 热部署 在开发中我们修改一个 Java 文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署). ...
- WinServer远程部署系统(RDSystem)
系统简介 RemoteDeploySystem是一套BS结构的远程部署管理系统(简称RDSystem),可以通过浏览器上传web站点和windows服务的更新包到RDSystem服务器,然后对多个服务 ...
- WinServer远程部署系统打包批处理文件
前言 工作中一直在使用一个部署系统WinServer远程部署系统(RDSystem),部署.回滚都很方便.我们一直都是增量发布或者只更新需要更新的文件,每次发布完之后要整理出一个增量更新包,压缩成zi ...
- tomcat远程部署应用
Tomcat安装成功后,在ip地址:8080上就可以看见熟悉的首页,在这个首页中,上方有一个manage app按钮,点击就可以进行应用管理了.这样就不需要使用ftp把war包传上去了. 要想远程部署 ...
- 图文详解远程部署ASP.NET MVC 5项目
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
- 图文详解远程部署ASP.NET MVC 5项目 [转载]
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
随机推荐
- RabbitMQ manage
1. RabbitMQ service sudo systemctl enable rabbitmq-server sudo systemctl start rabbitmq-server sudo ...
- etree和Beautiful Soup的使用
1.lxml 是一种使用 Python 编写的库,可以迅速.灵活地处理 XML ,支持 XPath (XML Path Language),使用 lxml 的 etree 库来进行爬取网站信息 2.B ...
- SQLServer树查询
感觉这个CTE递归查询蛮好用的,先举个例子: use City; go create table Tree ( ID int identity(1,1) primary key not null, N ...
- 5、申请开发(Development)描述文件
申请开发(Development)描述文件 在“Certificates, Identifiers & Profiles”页面“Provisioning Profiles”下选择“Develo ...
- spring boot 下载
- php 目录
1.laravel pswd oauth2 2.理解二叉树 3.IOC容器 4.微信支付 4.1 微信支付申请 5.DI 6.支付宝 支付H5 7.html 转 word 8.php-fpm 启动详 ...
- DataBinding(一)DataBinding初认识
参考DataBinding系列(一):DataBinding初认识 早在2015谷歌 I/O大会上,就介绍了一个新的框架DataBinding,从名字就可以看出来,这是一个数据绑定框架.我们为什么要使 ...
- golang 操作redis 错误:failed redigo: unexpected type for String, got type int64
报错的代码: isExist,err := redis.String(conn.Do("EXISTS", key)) 这个操作返回的应该是bool类型,所有改成 isExist,e ...
- delphi 属性编辑器
RegisterPropertyEditor TPictureEditor = class(TClassProperty) RegisterPropertyEditor(TypeInfo(TPic ...
- JVM老年代和新生代的比例
在 Java 中,堆被划分成两个不同的区域:新生代 ( Young ).老年代 ( Old ).新生代 ( Young ) 又被划分为三个区域:Eden.From Survivor.To Surviv ...