Scrapyd API 中文翻译版本

举报
彭世瑜 发表于 2021/08/13 23:18:30 2021/08/13
【摘要】 原文地址:https://scrapyd.readthedocs.io/en/stable/api.html 以下是 Scrapyd 提供的 JSON API. 实现了对Scrapy 项目管理 # 服务器查询 daemonstatus.json 服务器状态 # 项目操作 addversion.json 添加项目版本(一个项目下可以有多个版本) listproj...

原文地址: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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。