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 取消爬虫
daemonstatus.json
检查服务器加载状态
请求方式: GET
请求示例:
curl http://localhost:6800/daemonstatus.json
应答示例:
{
"status": "ok",
"running": "0",
"pending": "0",
"finished": "0",
"node_name": "node-name"
}
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
应答示例:
{
"status": "ok",
"spiders": 3
}
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
应答示例:
{
"status": "ok",
"jobid": "6487ec79947edab326d6db28a2d86511e8247444"
}
请求示例 传递一个爬虫参数 (arg1) 和一个爬虫配置参数 (DOWNLOAD_DELAY):
$ curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
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
应答示例:
{
"status": "ok",
"prevstate": "running"
}
listprojects.json
获取Scrapy 服务器所上传的项目列表
请求方式: GET
参数: none
请求示例:
$ curl http://localhost:6800/listprojects.json
应答示例:
{
"status": "ok",
"projects": ["myproject", "otherproject"]
}
listversions.json
获取项目的可用版本号. 按照顺序返回版本号, 最后一个就是当前使用的版本
请求方式: GET
参数:
project (string, 必须) - 项目名称
请求示例:
$ curl http://localhost:6800/listversions.json?project=myproject
应答示例:
{
"status": "ok",
"versions": ["r99", "r156"]
}
listspiders.json
获取项目中爬虫列表
请求方式: GET
参数:
project (string, 必须) - 项目名称
_version (string, 可选) - 指定项目版本
请求示例:
$ curl http://localhost:6800/listspiders.json?project=myproject
应答示例:
{
"status": "ok",
"spiders": ["spider1", "spider2", "spider3"]
}
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"
}
]
}
所有的任务数据都保存在内存中,Scrapyd服务重启之后被重置 issue 12
delversion.json
删除项目版本,如果一个项目名没有其他可用版本,那么这个项目也会被删除
请求方式: POST
参数:
project (string, 必须) - 项目名称
version (string, 必须) - 项目版本
请求示例:
$ curl http://localhost:6800/delversion.json -d project=myproject -d version=r99
应答示例:
{
"status": "ok"
}
delproject.json
删除一个项目,包括上传的所有版本
请求方式: POST
参数:
project (string, 必须) - 项目名称
请求示例:
$ curl http://localhost:6800/delproject.json -d project=myproject
应答示例:
{
"status": "ok"
}
相关文章
- Jeewx-api 1.4.9版本发布—第三方APP开发SDK,支持微信、钉钉、企业微信、小程序等
- Go-Excelize API源码阅读(二十七)——SetRowOutlineLevel、SetColOutlineLevel
- 手写一个Promise Class版本及Promise的api使用方法
- 个人号微信api接口开发_API接口授权系统php源码
- 获取百度热搜/实时热点 API
- 全能API接口PHP源码V1.4.2版本
- GrayLog使用HTTP JSONPath方式调用微步在线云API识别威胁IP
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包相关 接口 api
- 使用手机在网状态查询 API 有效防止虚假注册的设计思路
- MySQL Status Ndb_api_wait_meta_request_count_slave 数据库状态作用意思及如何正确
- MySQL Status Ndb_api_wait_scan_result_count 数据库状态作用意思及如何正确
- 学会使用Java API文档
- Linux文件系统API的运用(linux文件操作api)
- Linux命令API:开拓你的Linux技能(linux命令api)
- 学习MongoDB操作API 简易入门指南(mongodb操作api)
- 使用MSSQL的API实现更佳的数据库管理(mssql的api)
- API连接MySQL数据库实现快速灵活的数据存取(api连mysql数据库)
- 使用API操作MySQL数据库(api操作mysql)
- API控制MySQL数据库快速便捷(api控制mysql)
- API技术连接MySQL数据库的最佳方法(api如何连接mysql)
- API技术提高MySQL数据库性能(api和mysql)