Scrapyd API 中文翻译版本

简介: 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=myprojec

应答示例:


{
    "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"
}

相关文章
|
2月前
|
存储 开发框架 小程序
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
社区每周丨小程序 CLI 1.8.10 版本上线及基础API新增接口(7.3-7.7)
43 0
|
4月前
|
敏捷开发 JavaScript 前端开发
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
|
1月前
|
并行计算 算法 API
MindOpt优化器: 浅谈版本0.x和1.x之间API的差异
Mindopt是一款高性能优化求解器,专为解决从简单线性规划 (LP) 到更复杂的混合整数规划 (MIP) 、非线性规划(QP、SDP)的一系列问题而设计。其强大的算法旨在有效地找到最佳解决方案,使其成为运筹学,电力能源、工业制造、交通物流和其他领域的研究人员和专业人员的首选工具。
|
4月前
|
设计模式 Oracle 关系型数据库
二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!
二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!
|
4月前
|
前端开发 JavaScript API
【uni-app】【基于jQuery Ajax】[sd.js]最新原生完整版for凯哥API版本
【uni-app】【基于jQuery Ajax】[sd.js]最新原生完整版for凯哥API版本
|
7月前
|
Web App开发 JavaScript 前端开发
体验 Orbeon form PE 版本提供的 JavaScript Embedding API
体验 Orbeon form PE 版本提供的 JavaScript Embedding API
41 0
|
7月前
|
JavaScript 前端开发 API
关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
关于 Orbeon form PE 版本使用 JavaScript Embedding API 的一个例子
39 0
|
7月前
|
前端开发 JavaScript API
关于 SAP UI5 getSAPLogonLanguage is not a function 的错误消息以及 API 版本的讨论
关于 SAP UI5 getSAPLogonLanguage is not a function 的错误消息以及 API 版本的讨论
39 0
|
10月前
|
XML JSON 缓存
翻译文本 API说明示例
翻译文本 API说明示例
|
11月前
|
存储 负载均衡 测试技术
「微服务架构」使用Canary版本来简化API版本控制
「微服务架构」使用Canary版本来简化API版本控制