任务管家 (Scheduler)

任务管家是一个免费的 爬虫API 功能,用于通过为其创建时间表来自动化您的重复性抓取和解析作业。

我们建议在使用任务管家的同时使用 上传到云存储器 功能。这样,您可以设置您的时间表,在您的存储中定期接收数据更新,而不需要在从我们的系统中获取结果上做任何努力。

重要事项:任务管家是一款强大的工具,可轻松地增加您的服务账单。我们建议用几个作业项目和有限的重复次数进行测试,以确保您在正确的时间间隔获得正确的数据。在确定了这一点后,您便可停止测试时间表并创建一个新的、扩大规模的时间表。

入门指南

当创建一个新的时间表时,请遵循以下简单步骤。

  1. 告诉我们 我们应该多长时间通过提交一个 cron 时间表表达式来重复一次作业

  2. 向我们提供我们应该在预定时间执行的一堆作业参数集

  3. 通过提交结束时间让我们知道停止时间

参见 此处 查阅提交新时间表的代码示例。

提示:通过访问您要使用的特定 Scraper API 的文件,了解如何形成作业参数集(SERP / 电子商务 / 网络)。

注意:您也可以下载并导入该 Postman 集合来尝试我们所有的任务管家端点。初次使用 Postman?此处了解更多关于这个工具的信息。

端点

任务管家有几个您可以用来控制服务的端点:

创建新的时间表

总览

使用这个端点来启动一个新的时间表。

  • 端点: https://data.oxylabs.io/v1/schedules

  • 方法:POST

  • 身份验证Basic

  • 请求标头Content-Type: application/json

输入

参数描述默认值

cron

Cron 时间表表达式。它决定了所提交时间表的运行频率。此处阅读更多信息。

-

items

应该作为时间表的一部分执行的 爬虫APII 作业参数集的列表。

-

end_time

时间表应停止运行的时间。注意:含结束时间。

-

- 必须提供的参数

注意:关于为任务管家有效载荷的items部分相结合作业参数集的指南,请参考您想使用的特定抓取器 的文件页面。

下面的有效载荷将使任务管家在周一的 03:00 运行两个作业计划,直到 end_time(含)。

{
  "cron": "0 3 * * 1",
  "items": [
    {"source": "universal", "url": "https://ip.oxylabs.io"},
    {"source": "google_search", "query": "stuff"}
  ],
  "end_time": "2032-12-21 12:34:45"
}

输出

下面的响应确认了时间表已成功创建。

{
    "schedule_id": 4134906379157007223,
    "active": true,
    "items_count": 3,
    "cron": "* * * * *",
    "end_time": "2032-12-21 12:34:45",
    "next_run_at": "2022-06-06 10:15:00"
}

获取所有时间表

总览

使用这个端点来获取与您的用户账户相关的所有时间表的列表。

  • 端点: https://data.oxylabs.io/v1/schedules

  • 方法:GET

  • 身份验证Basic

输出

该端点返回与提出请求的用户账户相关的所有时间表 ID 的列表。

详见下面的答复样本。

{
    "schedules": [
        1764178033254455101,
        2885262175311057587,
        3251365810325795747,
        4134906379157007223,
        4164931482277157062
    ]
}

获取时间表信息

总览

使用这个端点来获取关于特定时间表的信息。

  • 端点: https://data.oxylabs.io/v1/schedules/{id}

  • 方法:GET

  • 身份验证Basic

输出

下面的有效载荷包含一个时间表信息响应样本。

{
    "schedule_id": 1764178033254455101,
    "active": true,
    "items_count": 3,
    "cron": "* * * * *",
    "end_time": "2032-12-21 12:34:45",
    "next_run_at": "2022-06-06 10:18:00",
    "stats": {
        "total_job_count": 3,
        "job_create_outcomes": [
            {
                "status_code": 202,
                "job_count": 3,
                "ratio": 1
            }
        ],
        "job_result_outcomes": [
            {
                "status": "done",
                "job_count": 2,
                "ratio": 0.67
            },
            {
                "status": "faulted",
                "job_count": 1,
                "ratio": 0.33
            }
        ]
    }
}

注意:当前items(即作为时间表的一部分要执行的作业)在输出中缺失。我们意识到了这一点,并将在短期内添加它们。

Key描述种类

schedule_id

时间表的唯一 ID。

整数

active

时间表现在是否在激活?

布林

items_count

时间表中的项目(作业)数量。

整数

cron

与时间表相关的 cron 表达式。

字符串

end_time

时间表将停止重复的时间。

字符串

next_run_at

时间表下一次运行的时间。

字符串

stats

包含统计作业创建和完成作业统计。

JSON 对象

stats:total_job_count

时间表中的项目(作业)数量。

整数

stats:job_create_outcomes

包含创建作业统计。

JSON 数组

stats:job_create_outcomes:status_code

试图执行时间表(创建一个抓取/解析作业)时收到的状态代码。

整数

stats:job_create_outcomes:job_count

导致该特定状态代码的作业创建尝试次数。

整数

stats:job_create_outcomes:ratio

导致该特定尝试的作业创建数量与作业创建的总数量之间的比率。

浮动

job_result_outcomes

包含抓取/解析作业的结果统计作为时间表的一部分来执行。

JSON 数组

status

作业状态。可能的值:pending(作业仍在处理中),done(作业已成功完成),faulted(作业已失败)。

字符串

job_count

导致该特定 status的作业数量。

整数

ratio

具有该特定状态的作业数量与所创建的作业总数之间的比率。

浮动

停用或重新启用一个时间表

总览

使用这个端点来激活或停用一个特定的时间表。

  • 端点: https://data.oxylabs.io/v1/schedules/{id}/state

  • 方法:PUT

  • 身份验证Basic

输入

使用这个端点来停止或重新启动一个时间表。

通过设置 activefalse,您可以停止执行一个特定时间表。

如果您设置了 activetrue, 则可以重新激活一个以前被停止的时间表。

{
  "active": false
}

输出

null

标准响应是一个具有 202 状态代码的空响应体。

Cron 时间表表达式

此处此处阅读更多信息。

API 响应代码

关于 API 响应代码,请参考 API 参考 -> 响应代码 -> API 响应代码 一节。

最后更新于