1、安装scrapyd模块
命令行工具打开输入:

pip install scrapyd

等待安装完成。

安装完成后输入scrapyd,启动scrapyd服务。

可配置爬虫 python python爬虫部署_ide


打开python的安装目录C:\Users\pc110\AppData\Local\Programs\Python\Python36\Lib\site-packages\scrapyd下的default_scrapyd.conf文件,打开,把bind_address修改为0.0.0.0,这样的话其他电脑可以部署你的电脑进行爬虫。

出现以上界面表示scrapyd已启动。让其服务在后台运行。

在浏览器输入

可配置爬虫 python python爬虫部署_可配置爬虫 python_02


2、如果连接成功先关闭服务,自己在非C盘下新建一个文件夹,名称自定义如:test,然后进入该文件夹,shift+右键 打开命令行工具,scrapyd输入执行,执行完成后会新建一个dbs空文件夹,用来存放爬虫项目的数据文件

可配置爬虫 python python爬虫部署_可配置爬虫 python_03


3、安装scrapyd-client模块。

scrapyd-client模块是专门打包scrapy爬虫项目到scrapyd服务中的,进入cmd命令行输入。

pip install scrapyd-client 安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件,在Linux系统下可以远行,在windows下是不能运行的,所以我们需要编辑一下使其在windows可以运行。

新建一个scrapyd-deploy.bat文件,右键选择编辑,输入以下配置,注意:两个路径之间是空格,一定要使用双引号。单引号的话会错误。

@echo off
"C:\Users\pc110\AppData\Local\Programs\Python\Python36\python.exe" "C:\Users\pc110\AppData\Local\Programs\Python\Python36\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9

4、进入爬虫项目中,此目录中有scrapy.cfg这个文件的目录中,打开cmd命令行输入scrapy-deploy,测试能否正常执行,如果出现以下界面,表示可以正常运行

可配置爬虫 python python爬虫部署_ide_04


5、打开scrapy.cfg文件,对其进行修改,将url这行代码解除注释,并且设置部署名称。

可配置爬虫 python python爬虫部署_ide_05


6、再次执行启动服务,可以看到设置的名称

可配置爬虫 python python爬虫部署_爬虫项目_06


7、开始打包前,执行一个命令:scrapy list ,这个命令执行成功说明可以打包了,如果没执行成功说明还有工作没完成。命令返回了爬虫名称说明一切ok了

可配置爬虫 python python爬虫部署_爬虫项目_07


8、到此我们就可以开始打包scrapy项目到scrapyd了,用命令结合scrapy项目中的scrapy.cfg文件设置来打包。

执行打包命令: scrapyd-deploy 部署名称 -p 项目名称

如:scrapyd-deploy sky -p IvskySpider

可配置爬虫 python python爬虫部署_爬虫项目_08


表示配置成功。

如果出现:

可配置爬虫 python python爬虫部署_可配置爬虫 python_09


表示版本不对,建议安装pip install scrapyd==1.1.1,直到你的egg文件夹中有项目即可

8、curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称

如:curl http://localhost:6800/schedule.json -d project=IvskySpider -d spider=sky

可配置爬虫 python python爬虫部署_爬虫项目_10


则爬虫运行成功

可以去网页中127.0.0.1::6800查看爬虫运行状态

可配置爬虫 python python爬虫部署_爬虫项目_11

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

https://github.com/DormyMo/SpiderKeeper 一个基于flask后台框架写的scrapy爬虫监控小项目,有兴趣的同学看看