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项目 [转载]
话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...
随机推荐
- 报错,但不影响运行ERROR: JDWP Unable to get JNI 1.2 environment, jvm->GetEnv() return code = -2
参考:http://blog.csdn.net/zxl0016/article/details/7327125 eclipse 3.4+jdk1.6 编译正常通过,运行debug模式时报错 ERROR ...
- system.data oracleClient 需要Oracle客户端8.1.7或high
- spring 之 lazy-init Autowired depends-on
1 lazy-init lazy-init是延迟初始化的意思. spring中容器都是尽早的创建和配置所有的单例bean,因此当容器在启动时,就会去配置和创建单例bean. 默认情况下 beans ...
- 3. group_concat与oracle中wm_concat用法一样
例子如下: select group_concat(rp.ROLE_ID) from eic_right_role_operator rp where rp.OPERATOR_ID = #id#
- springBoot整合MongoDB(单机)
依赖: <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-mon ...
- 关于 jquery+ajax向asp.net传递json的问题研究(呕心沥血、柳暗花明)
第一种方法:字典的方法 //质检不合格 $('#Button3').click(function () { if (!confirm('确定质检不合格吗?')) return; var obj = n ...
- python 阿狸的进阶之路(7)
面向对象 转自林海峰的博客 http://www.cnblogs.com/linhaifeng/articles/6182264.html 面向对象的理解: 将数据分类,比如学生类.数据有关的函数, ...
- hadoop-1
结合其他文章 http://weixiaolu.iteye.com/blog/1504898 https://www.cnblogs.com/dycg/p/3934394.html https://b ...
- COBOL和C#比较
<予備>
- (笨方法)利用stat函数实现ls -l filename
学习了一段时间的Linux了,但是我感觉我做不出来啥子,后头选择利用系统IO函数实现命令,先从ls走起吧.先来看看ls -l filename给我们显示了什么吧 : 可以看到,一共八项:文件类型.用户 ...