scrapyd是一款可以用来管理scrapy爬虫的工具。它通过发送http请求来管理爬虫,控制爬虫项目的启停。
scrapyd在github上的地址为:https://github.com/scrapy/scrapyd
pip install scrapyd
在shell或cmd中输入scrapyd,然后就可以在网页上通过127.0.0.1:6800查看你的爬虫项目了。页面如下:
要想将爬虫项目打包部署到scrapyd中,我们还需要安装scrapyd-client
pip install scrapyd-client
windows用户若要部署scrapyd,还需新建一个scrapyd-deploy.bat文件。该文件在相应python环境中下的python.exe同级目录中。
新建该文件的原因是windows环境中无法直接执行scrapyd-deploy(scrapyd-deploy是安装scrapyd时会安装到相应的python环境中)
scrapyd-deploy.bat内容为:
@echo off
"E:\somehow\python\virtualenv\py3scrapy\Scripts\python.exe" "E:\somehow\python\virtualenv\py3scrapy\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
配置好之后,就能和linux用户一样使用scrapyd-deploy了。
scrapyd-deploy l
查看已经启动的scrapyd服务
scrapyd-deploy list
查看项目列表
接下来就是部署的一般步骤
[deploy:somehow]
url = http://localhost:6800/
project =DoubanSpider
scrapyd-deploy somehow -p DoubanSpider
如果打包结果类似
Packing version 1525356467
Deploying to project "DoubanSpider" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "somehow", "status": "ok", "project": "DoubanSpider", "version": "1525356467", "spiders": 5}
说明你的爬虫项目就部署好了。
可以通过在shell中发送http请求来控制爬虫项目的运行(非常可惜,一般情况下,windows不支持发送curl指令,可以尝试下载使用cmder来运行)。
scrapyd相关的api文档也很健全:http://scrapyd.readthedocs.io/en/stable/api.html。
这里简要列举出几个常用请求
启动project(同时设置下载延时)
curl http://localhost:6800/schedule.json -d project=DoubanSpider -d spider=douban -d setting=DOWNLOAD_DELAY=20
查看project状态
curl http://localhost:6800/daemonstatus.json
删除project
curl http://localhost:6800/delproject.json -d project=DoubanSpider
取消任务(job id为启动时返回的id)
curl http://localhost:6800/cancel.json -d project=DoubanSpider -d job=9218dc3648f611e8b7ec00163e0cf49e 1
查看所有project
curl http://localhost:6800/listprojects.json
查看特定project具体的spider
curl http://localhost:6800/listspiders.json?project=DoubanSpider
查看job
curl http://localhost:6800/listjobs.json?project=DoubanSpider | python -m json.tool
查看所有上传到scrapy服务器上的project
curl http://localhost:6800/listprojects.json