原创

Scrapyd API 中文翻译版本

本文为博主原创文章,欢迎转载,请注明出处
本文链接:https://pengshiyu.blog.csdn.net/article/details/84137292

原文地址: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"
}
文章最后发布于: 2018-11-16 12:41:26
展开阅读全文
0 个人打赏
私信求帮助

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览