spiderkeeper API 使用

1.简介

spiderkeeper是一款开源的spider管理工具,可以方便的进行爬虫的启动,暂停,定时,同时可以查看分布式情况下所有爬虫日志,查看爬虫执行情况等功能。

2.安装

详见
https://blog.csdn.net/m0_38106113/article/details/81812135
注意:
crapyd spiderkeeper 都必须在项目的根目录下运行

3.API

spiderkeeper可以通过http的API进行操控,官方给了一个文档及调试页面,在运行spiderkeeprt后,
访问 http://127.0.0.1:5000/api.html
点开 Show/Hide 按钮,即可看到文档
spiderkeeper API 使用_第1张图片
有相关api接口说明,也可以直接在页面上尝试访问api
spiderkeeper API 使用_第2张图片

4.使用代码调用接口

正常调用http的包访问api即可,有一点需要注意,访问时需要加上授权

python requests调用

html = requests.post(url=url, data=data,  auth=('admin', 'admin'))

需要加上授权关键字 auth

java okhttp3 调用

String credential = Credentials.basic("admin", "admin");
        Request request = new Request
                .Builder()
                .header("Authorization", credential)
                .post(formBody)
                .url(url)
                .build();

构造request头时,加上Authorization

5.未列的API

不知道为什么,对spiderkeeper没有列出对定时任务的删除和执行单次任务的API
,通过对spiderkeep的抓包后,得出以下api:

执行单次任务:

datas = {
    'spider_name': spider_name,
    'spider_arguments': spider_arguments,
     run_type': 'onetime',
    'priority': '0',
    'daemon':'auto'
}
url='http://localhost:5000/project/1/job/add'
html = requests.post(url=url,data=datas ,auth=('admin','admin'))

删除定时任务:

def deleteask(self,jobId):
    url='http://localhost:5000/project/1/job/%s/remove'%(jobId)
    html = requests.get(url=url,auth=('admin','admin'))
    if(html.text=='true\n'):
        return True

    return False

上面api访问后都会返回302错误,但spidekeeper还是会执行

你可能感兴趣的:(python,爬虫,python,爬虫)