python分布式爬虫scrapyd部署以及gerapy的使用流程

新建虚拟环境(方便管理),也可以直接执行第一步。注意:windows系统和虚拟环境要分清,进入指定的环境下进行操作,否则会出现错误
1、打开命令行工具执行pip install scrapyd
 用pip 命令pip  install  scrapyd包在这里插入图片描述
2、
等待安装完成 , 输入scrapyd启动scrapyd服务
出现下面的内容则表明服务开启成功
python分布式爬虫scrapyd部署以及gerapy的使用流程_第1张图片
3、在浏览器输入127.0.0.1:6800 即可查看
python分布式爬虫scrapyd部署以及gerapy的使用流程_第2张图片
4、如果连接成功先关闭服务,自己在非C盘下新建一个文件夹,名称自定义如:scrapydTest
然后进入该文件夹,shift+右键 打开命令行工具,输入scrapyd执行,执行完成后会新建一个dbs空文件夹,用来存放爬虫项目的数据文件
在这里插入图片描述
5、安装scrapyd-client模块。scrapyd-client模块是专门打包scrapy爬虫项目到scrapyd服务中的,进入虚拟环境,执行命令pip install scrapyd-client==1.1.0,安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件,在Linux系统下可以运行,在windows下是不能运行的,所以我们需要编辑一下使其在windows可以运行
python分布式爬虫scrapyd部署以及gerapy的使用流程_第3张图片
6、新建一个scrapyd-deploy.bat文件,右键选择编辑,输入以下配置,注意:两个路径之间是空格,一定要使用双引号。单引号的话会错误。
@echo off
“C:\Users\qianzhen\Envs\scrapySpider\Scripts\python.exe” “C:\Users\qianzhen\Envs\scrapySpider\Scripts\scrapyd-deploy” %1 %2 %3 %4 %5 %6 %7 %8 %9/
7、进入虚拟环境,进入到你的爬虫项目中,进入带有scrapy.cfg文件的目录,执行scrapyd-deploy,测试scrapyd-deploy是否可以运行,如果出现以下则正常
在这里插入图片描述
8、打开爬虫项目中的scrapy.cfg文件,这个文件就是给scrapyd-deploy使用的
将url这行代码解掉注释,并且给设置你的部署名称
python分布式爬虫scrapyd部署以及gerapy的使用流程_第4张图片
9、再次执行scrapyd-deploy -l 启动服务,可以看到设置的名称
在这里插入图片描述
10、开始打包前,执行命令:scrapy list,这个命令执行成功说明可以打包了,如果没执行成功说明还有工作没完成
注意:执行 scrapy list 命令的时候很有可能出现错误,如果是python无法找到scrapy项目,需要在scrapy项目里的settings.py配置文件里设置成python可识别路径

如果错误提示,什么远程计算机拒绝,说明你的scrapy项目有链接远程计算机,如链接数据库或者elasticsearch(搜索引擎)之类的,需要先检查服务器是否开启,将链接服务器启动
执行 scrapy list 命令返回了爬虫名称说明一切ok了,如下图:

在这里插入图片描述
11、执行打包命令: scrapyd-deploy 部署名称 -p 项目名称
如下显示表示scrapy项目打包成功
在这里插入图片描述
如果出现
在这里插入图片描述
版本不对,建议安装pip install scrapyd==1.1.1,直到你的egg文件夹中有项目即可
curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
执行后,如果出现
在这里插入图片描述
则爬虫运行成功
可以去网页中127.0.0.1::6800查看爬虫运行状态
python分布式爬虫scrapyd部署以及gerapy的使用流程_第5张图片
到此为止,scrapyd部署已经完成了,但是如果我们想要控制爬虫是很难的,下面几个命令是控制爬虫的进程,不妨试一试。

停止爬虫
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})

这样输入命令是不是很繁琐,命令太多不容易记,命令输入错误,得不到想要的结果,你在学习中是否遇到这种问题,因此,gerapy就诞生了,这个工具可以让你的工作更加便捷、高效(不推荐在工作中使用此工具)

配置gerapy

1>创建文件夹,存放部署的项目
2>进入文件夹,gerapy init 初始化
3>进入gerapy文件夹,gerapy migrate创建数据表
4>gerapy runserver 启动项目
5>浏览器输入http://127.0.0.1:8000就可以使用

具体操作可参考:https://github.com/DormyMo/SpiderKeeper

你可能感兴趣的:(scrapyd部署爬虫)