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 的远程部署和监控的更多相关文章

  1. 推荐 远程部署 fabric

    自己写的一个例子: from fabric.api import run, env env.hosts = ['nanjing','hefei','haerbin','lanzhou','taiyua ...

  2. 部署zabbix监控平台(源码安装)

    案例:部署Zabbix监控平台 1 问题 本案例要求部署一台Zabbix监控服务器,一台被监控主机,为进一步执行具体的监控任务做准备: 安装LNMP环境 源码安装Zabbix 安装监控端主机,修改基本 ...

  3. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  4. 【SpringBoot1.x】SpringBoot1.x 开发热部署和监控管理

    SpringBoot1.x 开发热部署和监控管理 热部署 在开发中我们修改一个 Java 文件后想看到效果不得不重启应用,这导致大量时间花费,我们希望不重启应用的情况下,程序可以自动部署(热部署). ...

  5. WinServer远程部署系统(RDSystem)

    系统简介 RemoteDeploySystem是一套BS结构的远程部署管理系统(简称RDSystem),可以通过浏览器上传web站点和windows服务的更新包到RDSystem服务器,然后对多个服务 ...

  6. WinServer远程部署系统打包批处理文件

    前言 工作中一直在使用一个部署系统WinServer远程部署系统(RDSystem),部署.回滚都很方便.我们一直都是增量发布或者只更新需要更新的文件,每次发布完之后要整理出一个增量更新包,压缩成zi ...

  7. tomcat远程部署应用

    Tomcat安装成功后,在ip地址:8080上就可以看见熟悉的首页,在这个首页中,上方有一个manage app按钮,点击就可以进行应用管理了.这样就不需要使用ftp把war包传上去了. 要想远程部署 ...

  8. 图文详解远程部署ASP.NET MVC 5项目

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

  9. 图文详解远程部署ASP.NET MVC 5项目 [转载]

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...

随机推荐

  1. AS导入项目报错:Plugin with id 'com.android.application' not found.

    从github或第三方Demo中获取的项目导入到AndroidStudio中报错Plugin with id 'com.android.application' not found.:今天导入一个讯飞 ...

  2. mongod 安装,增删改查

    SQL - MySQL Oracel DB2 sybase MSSQLMySQL : PHP > LAMPMySQL - 关系型数据库  - 语言学习成本高user_infoid  name   ...

  3. isinstance, type, issubclass

    isinstance: 判断你给对象是否是xx类型的. (向上判断)type: 返回xxx对象的数据类型issubclass: 判断xxx类是否xxx的子类 class Animal: def eat ...

  4. h5项目如何打成war包

    有着java的运行环境,进入到h5工作目录,运行: jar -cvf projectname.war ./* projectname为项目的名称.

  5. Eclipse svn 项目 星号

    上图: 明明没有文件修改过就是无脑显示有提交的文件,有强迫症受不了. 而且每次提交你都点开看有没有漏掉啥文件.很麻烦.也很难受 .很容易漏提交 把本地文件跟SVN同步对比一下. 果然有文件. 添加规则 ...

  6. Jenkins 简单配置

      安装就不说了, 因为安装实在是很简单的. Jenkins基础配置 配置jdk 和maven 进入Global Tool Configuration, 配置JDK: 一般不要选择自动安装, 否则下载 ...

  7. 【ASP.NET 进阶】TreeView控件学习

    这几天上班没事做,也不好打酱油,学点没接触过的新东西吧,基本了解了下TreeView控件. TreeView 控件用于在树结构中显示分层数据,例如目录或文件目录等. 下面看代码吧: 1.效果图 2.静 ...

  8. MVC基于角色权限控制--管理角色

    管理角色分为 添加角色.删除角色.修改角色.给角色分配权限(修改角色权限) 新建RoleInfoController继承BaseController namespace CZBK.ItcastOA.W ...

  9. 20165304 2017-2018-2 《Java程序设计》第3周学习总结

    教材学习总结 类与对象学习总结 1.类:java作为面向对象型语言具有三个特性:①封装性.②继承性.③多态性.java中类是基本要素,类声明的变量叫对象.在类中定义体的函数题叫方法. 2.类与程序的基 ...

  10. Firefox What's New 太难找了

    Firefox每次更新版本,不知道更新了什么,找不到Waht‘s New,做个记录! 1.点击mozilla下拉 2.最左侧 MOZILLA>SUPPORT>Firefox 3.https ...