scrapyd的使用

 scrapyd部署爬虫的优势:
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.jsonpost方式,data={"project":myproject}





猜你喜欢

转载自blog.csdn.net/a10090492/article/details/79657233
今日推荐