scrapyd api接口介绍
scrapyd API接口,这里使用postman工具调用,每个接口都添加了scrapyd服务需要的Basic Auth类型用户名和密码。
1.daemonstatus.json接口
检查服务的负载状态
get请求,传参无
#get请求 http://120.xx.xxx.xxx:6800/daemonstatus.json #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "pending": 0, "running": 0, "finished": 3 }
2.listprojects.json接口
获取scrapyd服务端项目列表
get请求,传参无
Get http://120.xx.xxx.xxx:6800/listprojects.json #Res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "projects": [ "ebs_crawler" ] }
3.listspiders.json接口
获取scrapyd服务端spider列表,根据指定的项目
get请求,传参project 必选,_version可选
get http://120.xx.xxx.xxx:6800/listspiders.json?project=ebs_crawler #res 默认获取最新的版本信息 { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "spiders": [ "bomman", "bommanjson" ] }
4.listversions.json接口
获取某些项目可用的版本列表。版本按顺序返回,最后一个是当前使用的版本。
get请求,传参project必选
get http://120.xx.xxx.xxx:6800/listversions.json?project=ebs_crawler #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "versions": [ "0_3", "0_4" ] }
5.listjobs.json 任务列表接口
获取某个项目的待处理、正在运行和已完成作业的列表。
Get请求,入参project 可选
get http://120.xx.xxx.xxx:6800/listjobs.json?project=ebs_crawler #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "pending": [], "running": [], "finished": [ { "project": "ebs_crawler", "spider": "bomman", "id": "249585bb034411ed967300163e12aec2", "start_time": "2022-07-14 15:11:14.682556", "end_time": "2022-07-14 15:11:15.069107" }, { "project": "ebs_crawler", "spider": "bommanjson", "id": "84520364034411edbde900163e12aec2", "start_time": "2022-07-14 15:13:54.682628", "end_time": "2022-07-14 15:13:55.066653" } ] }
6.delversion.json 删除指定版本
删除项目版本。如果给定项目没有更多可用版本,则该项目也将被删除。
post请求,入参project 必需, version必需
post http://120.xx.xxx.xxx:6800/delversion.json #form-data类型 var data = new FormData(); data.append('project', 'ebs_crawler'); data.append('version', '0_3') #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok" }
7.cancel.json 取消接口
取消蜘蛛运行(又名作业)。如果作业处于待处理状态,它将被删除。如果作业正在运行,它将被终止。这是接口是针对jog任务的
post请求,入参project 必需,job 必需
post http://120.xx.xxx.xxx:6800/cancel.json #form-data类型 var data = new FormData(); data.append('project', 'ebs_crawler'); data.append('job', 'e0c9ab0c034511ed923f00163e12aec2'); #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "prevstate": null }
8.schedule.json 调度接口
安排蜘蛛运行(也称为作业),返回作业 ID。
post请求,入参:
project(string, required) - 项目名称 spider(string, required) - 蜘蛛名称 setting(字符串,可选)- 运行蜘蛛时使用的 Scrapy 设置 jobid(字符串,可选)- 用于标识作业的作业 ID,覆盖默认生成的 UUID priority(float, optional) - 此项目的蜘蛛队列的优先级 - 默认为 0 _version(字符串,可选) - 要使用的项目版本
post http://120.xx.xxx.xxx:6800/schedule.json #form-data类型 var data = new FormData(); data.append('project', 'ebs_crawler'); data.append('spider', 'bommanjson'); #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok", "jobid": "e0c9ab0c034511ed923f00163e12aec2" }
9.delproject.json 删除项目接口
删除项目及其所有上传的版本。
post提交,入参project 必需
post http://120.xx.xxx.xxx:6800/delproject.json #form-data var data = new FormData(); data.append('project', 'ebs_crawler'); #res { "node_name": "iZwz927xptl8kw8zqrmwvcZ", "status": "ok" }
10.addversion-json 上传接口
将版本添加到项目,如果项目不存在则创建项目。
post 提交,入参project 必需,version必需,egg 必需是一个文件类型
可以使用postman, 也可以使用scrapyd-deploy命令提交,见:https://www.cnblogs.com/MrHSR/p/16476513.html