主题
设置 Google Dataset Search 任务
POST /v3/serp/google/dataset_search/task_post
本接口通过 POST /v3/serp/google/dataset_search/task_post 创建 Google Dataset Search 任务,返回与指定的 Google Dataset Search 前 20 条结果的任务标识。可通过 depth、数据集更新时间、文件格式、使用权限等参数进一步筛选结果。
任务支持两种执行优级:
1:普通优级,默认值2:高优级,执行速度更快,但会产生额外费用
请求地址
http
POST https://api.seermartech.cn/v3/serp/google/dataset_search/task_post计费说明
- 本接口在创建任务时计费。
- 默认每个任务最多返回 20 条结果。
- 将
depth设置为大于20时,如果搜索引擎返回 20 条结果,可能产生额外费用。 - 如果
depth大于返回结果数,未使用部分通常会自动退还至账户余额。 - 使用
priority: 2创建高优级任务时,将产生额外费用。 - 实扣费以响应头
X-SeerMarTech-Charge-CNY为准。 - 示例响应中的
cost: 0.0006按人民币参考汇率折算约为 ¥0.0043 / 次,供参考,扣费以响应头为准。
请求限制
- 请求体使用 UTF-8 编码的 JSON 格式。 平台限流以认证说明中的 30/60/120 次/分钟规则为准。
- 每个 POST 请求最多 100 个任务。
- 如果单次请求 100 个任务,出限制的任务将返回错误码
40006。 - 每个任务提交后都会返回唯一的
id,可使用该 ID 查询任务结果。 - 也可以通过
pingback_url或postback_url接收任务完成通知和结果。 - 如果通知服务器在 10 秒未响应,连接将因时中断,任务会转移至任务就绪列表。
请求体格式
请求体是 JSON 数组,每个数组代表一个任务:
json
[
{
"keyword": "water quality"
}
]参数说明
主要参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
keyword | string | 是 | Dataset Search 查询,最多 700 个字符。参数中的 URL 编码会被解码,字符 + 会被解码为空格。如果中需要使用 %,请写成 %25;如果需要使用 +,请写成 %2B。 |
language_code | string | 否 | 搜索引擎语言代码。可选值:en。 |
depth | integer | 否 | 解析深度,即期望获取的结果数量。默认值:20;最大值:700。 |
priority | integer | 否 | 任务优级。1:普通优级,默认值;2:高优级,速度更快但费用更高。 |
device | string | 否 | 设备类型。可选值:desktop。 |
pingback_url | string | 否 | 任务完成通知地址。任务完成后,本平台将向该地址发送 GET 请求。可使用 $id 和 $tag 占位符,本平台发送请求时会替换为值。 |
postback_url | string | 否 | 任务结果回传地址。任务完成后,本平台将以 gzip 压缩格式向该地址发送 POST 请求。可使用 $id 和 $tag 占位符。 |
postback_data | string | 否 | postback_url 返回数据类型。指定 postback_url 时填。唯一可选值:advanced。 |
> pingback_url 和 postback_url 中的特殊字符会进行 URL 编码,例如 # 会编码为 %23。
附加参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
language_name | string | 否 | 搜索引擎语言名称。使用此参数时无需再指定 language_code。可选值:English。 |
os | string | 否 | 设备操作系统。可选值:windows、macos。默认值:windows。 |
tag | string | 否 | 用户自定义任务标识,最多 255 个字符。可用于任务与结果,提交的值会在响应的 data 对象中返回。 |
last_updated | string | 否 | 数据集最近更新时间。可选值:1m(一个月)、1y(一年)、3y(三年)。 |
file_formats | array | 否 | 数据集文件格式。可选值:other、archive、text、image、document、tabular。 |
usage_rights | string | 否 | 数据集使用权限。可选值:commercial、noncommercial。 |
is_free | boolean | 否 | 是否返回数据集。可选值:true、false。 |
topics | array | 否 | 数据集主题。可选值:humanities、social_sciences、life_sciences、agriculture、natural_sciences、geo、computer、architecture_and_urban_planning、engineering。 |
请求示例
cURL
bash
curl --location --request POST \
'https://api.seermartech.cn/v3/serp/google/dataset_search/task_post' \
--header 'Authorization: Bearer smt_live_YOUR_KEY' \
--header 'Content-Type: application/json' \
--data-raw '[
{
"keyword": "water quality",
"language_code": "en",
"last_updated": "1m",
"file_formats": ["tabular", "document"],
"usage_rights": "noncommercial",
"is_free": true,
"topics": ["natural_sciences"],
"device": "desktop",
"os": "windows"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/serp/google/dataset_search/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
tasks = [
{
"keyword": "water quality",
"last_updated": "1m",
"file_formats": ["tabular", "document"],
"usage_rights": "noncommercial",
"is_free": True,
"topics": ["natural_sciences"],
},
{
"keyword": "water quality",
"last_updated": "1m",
"file_formats": ["tabular"],
"usage_rights": "noncommercial",
"is_free": True,
"topics": ["natural_sciences"],
"priority": 2,
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
},
]
response = requests.post(url, headers=headers, json=tasks)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
f"请求失败,错误码:{result.get('status_code')},"
f"错误信息:{result.get('status_message')}"
)TypeScript
typescript
import axios from "axios";
const tasks = [
{
keyword: "water quality",
last_updated: "1m",
file_formats: ["tabular", "document"],
usage_rights: "noncommercial",
is_free: true,
topics: ["natural_sciences"],
},
{
keyword: "water quality",
last_updated: "1m",
file_formats: ["tabular"],
usage_rights: "noncommercial",
is_free: true,
topics: ["natural_sciences"],
priority: 2,
tag: "some_string_123",
pingback_url:
"https://your-server.com/pingscript?id=$id&tag=$tag",
},
];
axios
.post(
"https://api.seermartech.cn/v3/serp/google/dataset_search/task_post",
tasks,
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
)
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error.response?.data || error.message);
});响应说明
接口返回 JSON 对象 tasks 数组每个任务的创建结果。
顶层响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。成功通常为 20000。 |
status_message | string | 通用状态信息。 |
time | string | 请求执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。可使用该 ID 查询任务结果。 |
status_code | integer | 当前任务状态码,通常位于 10000 至 60000 范围。 |
status_message | string | 当前任务状态信息。 |
time | string | 任务处理耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。创建任务时通常为 0。 |
path | array | 请求 URL 路径信息。 |
data | object | 创建任务时提交的参数。 |
result | array | null | 任务结果数组。创建任务接口返回时为 null。 |
成功响应示例
json
{
"version": "0.1.20220819",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0469 sec.",
"cost": 0.0043,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0123 sec.",
"cost": 0.0043,
"result_count": 0,
"path": [
"v3",
"serp",
"google",
"dataset_search",
"task_post"
],
"data": {
"api": "serp",
"function": "task_post",
"se": "google",
"se_type": "dataset_search",
"keyword": "water quality",
"last_updated": "1m",
"file_formats": [
"tabular",
"document"
],
"usage_rights": "noncommercial",
"is_free": true,
"topics": [
"natural_sciences"
],
"device": "desktop",
"os": "windows"
},
"result": null
}
]
}任务结果获取
创建任务成功后,请保存响应中的 tasks[].id,并使用该 ID 查询任务结果。也可以在创建任务时:
pingback_url:任务完成后接收 GET 通知。postback_url:任务完成后接收 gzip 压缩的 POST 结果。
当回调服务器 10 秒未响应时,通知请求会因时终止,任务将转移到任务就绪列表。请确保回调地址能够快速返回 HTTP 成功响应,并备幂等处理能力。
错误处理
- 顶层
status_code表示本次请求的整体状态。 tasks[].status_code表示单个任务的处理状态。tasks_error表示返回错误的任务数量。- 单次请求 100 个任务时,出限制的任务将返回错误码
40006。 - 建议客户端同时检查 HTTP 状态码、顶层
status_code和每个任务的status_code,并针对时、限流、参数校验失败等实现重试或告警机制。
实用场景
- 检索行业数据集:围绕行业获取数据集,帮助研究团队快速发现可引用的数据来源。
- 筛选可商用数据资源:结合
usage_rights和is_free参数筛选商业可用或数据集,降低生产和数据采购成本。 - 按主题构建数据集单:使用
topics、file_formats和last_updated组合过滤结果,为 SEO、行业报告或专题页面整理数据资源。 - 监测数据集更新:按
last_updated设置时间范围,持续发现近期更新的数据集,提升研究资料的时效性。 - 批量分析数据集搜索需求:一次提交多个任务,并通过
tag和回调地址结果,支持规模化研究与数据资产盘点。