1、方便监控爬虫的实时运行状态,也可以通过接口调用开发自己的监控爬虫的页面
2、方便统一管理,可以同时启动或关闭多个爬虫
3、拥有版本控制,如果爬虫出现了不可逆的错误,可以通过接口恢复到之前的任意版本
pip install scrapyd
安装完成之后启动即可,即在cmd中输入scrapyd
这个时候在浏览器输入127.0.0.1:6800 就能查看了 运行没问题之后先关闭
(在任意盘中新建一个文件夹,打开这个文件夹shift+右键 打开命令行工具,会新建一个dbs空文件夹这个文件夹用来存放爬虫项目的数据)
第二步,还是安装
pip installl scrapyd-client(客户端的意思)
(scrapyd-client模块是专门用来打包scrapy项目的,安装完成后会在scripts中出现一个scrapyd-deploy无后缀文件,这个scrapyd-deploy(部署的意思)文件是启动文件,在Linux系统下可以运行,在Windows下是不能运行的,所以我们需要编辑一下,使他在Windows可以运行
新建一个scrapyd-deploy.bat文件,右键选择编辑,输入以下配置,注意:两个路径之间是空格,一定要使用双引号。单引号的话会错误。
@echo off
"python.exe的路径" "scrapyd-deploy的路径" %1 %2 %3 %4 %5 %6 %7 %8 %9)
3.进入虚拟环境,进入项目中,执行scrapyd-deploy,测试是否可以运行,如果出现以下则正常
4.打开爬虫项目中的scrapy.cfg文件,这个文件就是scrapyd-deploy使用的,将url这行代码解注释,并设置自己的部署名称
这个时候执行scrapyd-deploy -l,可以看到设置的名称,执行scrapy list,如果能成功看到爬虫名,说明成功了
(
注意执行 scrapy list 命令的时候很有可能出现错误,如果是python无法找到scrapy项目,需要在scrapy项目里的settings.py配置文件里设置成python可识别路径
# 将当前项目的一级目录TotalSpider目录添加到python可以识别目录中
BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, “TotalSpider”))
如果错误提示,什么远程计算机拒绝,说明你的scrapy项目有链接远程计算机,如链接数据库或者elasticsearch(搜索引擎)之类的,需要先将链接服务器启动
执行 scrapy list 命令返回了爬虫名称说明一切ok了,如下图
)
5.执行打包命令: scrapyd-deploy 部署名称 -p 项目名称
如:scrapyd-deploy wj -p TotalSpider
6.运行爬虫的命令是
curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
这个是成功之后的,可以在127.0.0.1:6800上查看
----------------------------分割线------------------------------------------------------
停止爬虫
curl http://localhost:6800/cancel.json -d project=scrapy项目名称 -d job=运行ID
删除scrapy项目
注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫
curl http://localhost:6800/delproject.json -d project=scrapy项目名称
查看有多少个scrapy项目在api中
curl http://localhost:6800/listprojects.json
查看指定的scrapy项目中有多少个爬虫
curl http://localhost:6800/listspiders.json?project=scrapy项目名称
总结几个请求url
1、获取状态
http://127.0.0.1:6800/daemonstatus.json
2、获取项目列表
http://127.0.0.1:6800/listprojects.json
3、获取项目下已发布的爬虫列表
http://127.0.0.1:6800/listspiders.json?project=myproject
4、获取项目下已发布的爬虫版本列表
http://127.0.0.1:6800/listversions.json?project=myproject
5、获取爬虫运行状态
http://127.0.0.1:6800/listjobs.json?project=myproject
6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫)
http://127.0.0.1:6800/schedule.json (post方式,data={"project":myproject,"spider":myspider})
7、删除某一版本爬虫
http://127.0.0.1:6800/delversion.json
(post方式,data={"project":myproject,"version":myversion})
8、删除某一工程,包括该工程下的各版本爬虫
http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})