Scrapyd API 中文翻译版本
原文地址:https://scrapyd.readthedocs.io/en/stable/api.html
以下是 Scrapyd 提供的 JSON API.
实现了对Scrapy 项目管理
# 服务器查询
daemonstatus.json 服务器状态
# 项目操作
addversion.json 添加项目版本(一个项目下可以有多个版本)
listprojects.json 项目列表
listversions.json 项目版本列表
delproject.json 删除项目
delversion.json 删除项目版本
# 爬虫操作
listspiders.json 项目中爬虫列表
schedule.json 调度运行爬虫
listjobs.json 任务列表
cancel.json 取消爬虫
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
daemonstatus.json
检查服务器加载状态
请求方式: GET
请求示例:
curl http://localhost:6800/daemonstatus.json
- 1
应答示例:
{ "status": "ok", "running": "0", "pending": "0", "finished": "0", "node_name": "node-name"
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
addversion.json
给项目添加一个版本,如果不存在则创建
请求方式: POST
参数:
project (string, 必须) - 项目名称
version (string, 必须) - 项目版本
egg (file, 必须) - 一个包含项目代码的 Python egg 文件
请求示例:
$ curl http://localhost:6800/addversion.json -F project=myproject -F version=r23 -F egg=@myproject.egg
- 1
应答示例:
{ "status": "ok", "spiders": 3
}
- 1
- 2
- 3
- 4
Scrapyd 使用 distutils LooseVersion 去解释你提供的版本号,默认使用最新的项目版本
schedule.json 和 listspiders.json 允许你设置具体的项目版本.
schedule.json
调度运行一个爬虫,返回任务id
请求方式: POST
参数:
project (string, 必须) - 项目名称
spider (string, 必须) - 爬虫名称
setting (string, 可选) - Scrapy爬虫运行的配置
jobid (string, 可选) - 识别任务的id, 重写默认生成的 UUID
_version (string, 可选) - 指定项目使用的版本号
任何其他的参数都将作为爬虫参数
请求示例:
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider
- 1
应答示例:
{ "status": "ok", "jobid": "6487ec79947edab326d6db28a2d86511e8247444"
}
- 1
- 2
- 3
- 4
请求示例 传递一个爬虫参数 (arg1) 和一个爬虫配置参数 (DOWNLOAD_DELAY):
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
- 1
Scrapyd 调度器接收任意数量关键字参数,并且生成爬虫运行的参数
cancel.json
版本 >= 0.15.
取消爬虫运行, 如果正在等待(pending)就移除,如果正在运行(running)就终止
请求方式: POST
参数:
project (string, 必须) - 项目名称
job (string, 必须) - 任务id
请求示例:
$ curl http://localhost:6800/cancel.json -d project=myproject -d job=6487ec79947edab326d6db28a2d86511e8247444
- 1
应答示例:
{ "status": "ok", "prevstate": "running"
}
- 1
- 2
- 3
- 4
listprojects.json
获取Scrapy 服务器所上传的项目列表
请求方式: GET
参数: none
请求示例:
$ curl http://localhost:6800/listprojects.json
- 1
应答示例:
{ "status": "ok", "projects": ["myproject", "otherproject"]
}
- 1
- 2
- 3
- 4
listversions.json
获取项目的可用版本号. 按照顺序返回版本号, 最后一个就是当前使用的版本
请求方式: GET
参数:
project (string, 必须) - 项目名称
请求示例:
$ curl http://localhost:6800/listversions.json?project=myproject
- 1
应答示例:
{ "status": "ok", "versions": ["r99", "r156"]
}
- 1
- 2
- 3
- 4
listspiders.json
获取项目中爬虫列表
请求方式: GET
参数:
project (string, 必须) - 项目名称
_version (string, 可选) - 指定项目版本
请求示例:
$ curl http://localhost:6800/listspiders.json?project=myproject
- 1
应答示例:
{ "status": "ok", "spiders": ["spider1", "spider2", "spider3"]
}
- 1
- 2
- 3
- 4
listjobs.json
版本 >= 0.15.
获取项目任务列表,包括:等待(pending)运行(running)和完成(finished)
请求方式: GET
参数:
project (string, 必须) - 项目名称
请求示例:
$ curl http://localhost:6800/listjobs.json?project=myproject
应答示例:
{ "status": "ok", "pending": [ { "id": "78391cc0fcaf11e1b0090800272a6d06", "spider": "spider1" } ], "running": [ { "id": "422e608f9f28cef127b3d5ef93fe9399", "spider": "spider2", "start_time": "2012-09-12 10:14:03.594664" } ], "finished": [ { "id": "2f16646cfcaf11e1b0090800272a6d06", "spider": "spider3", "start_time": "2012-09-12 10:14:03.594664", "end_time": "2012-09-12 10:24:03.594664" } ]
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
所有的任务数据都保存在内存中,Scrapyd服务重启之后被重置 issue 12
delversion.json
删除项目版本,如果一个项目名没有其他可用版本,那么这个项目也会被删除
请求方式: POST
参数:
project (string, 必须) - 项目名称
version (string, 必须) - 项目版本
请求示例:
$ curl http://localhost:6800/delversion.json -d project=myproject -d version=r99
- 1
应答示例:
{ "status": "ok"
}
- 1
- 2
- 3
delproject.json
删除一个项目,包括上传的所有版本
请求方式: POST
参数:
project (string, 必须) - 项目名称
请求示例:
$ curl http://localhost:6800/delproject.json -d project=myproject
- 1
应答示例:
{ "status": "ok"
}
- 1
- 2
- 3
文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。
原文链接:pengshiyu.blog.csdn.net/article/details/84137292
- 点赞
- 收藏
- 关注作者
评论(0)