主题
获取 Google Jobs Advanced 结果
通过任务 ID 获取已提交的 Google Jobs SERP Advanced 结果。
接口说明
- 请求方式:
GET - 请求地址:
https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/$id
该接口用于按任务 ID 拉取已完成任务的高级结果。任务提交成功后,您只会在创建任务时被扣费;任务结果在 30 天可重复获取。
实扣费以响应头
X-SeerMarTech-Charge-CNY为准。
路径参数
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。任务结果可在 30 天随时通过该 ID 获取。 |
沙箱调试
如需查看该端点可返回的字段结构,可使用沙箱地址:
https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/00000000-0000-0000-0000-000000000000
说明:
- 沙箱响应会返回该接口支持的所有结果项与字段;
- 字段值为模拟数据;
- 调用沙箱接口不会产生费用。
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。完整错误码可参考 /v3/appendix/errors。建议对异常状态建立完整处理机制。 |
status_message | string | 通用状态信息。 |
time | string | 执行耗时,单位秒。 |
cost | float | 本次请求总成本,单位 USD。 |
tasks_count | integer | tasks 数组中的任务数量。 |
tasks_error | integer | 返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
tasks[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,UUID 格式。 |
status_code | integer | 任务状态码,范围通常为 10000-60000。 |
status_message | string | 任务状态信息。 |
time | string | 任务执行耗时,单位秒。 |
cost | float | 任务成本,单位 USD。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求路径。 |
data | object | 与创建任务时 POST 请求中指定的参数一致。 |
result | array | 结果数组。 |
result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
keyword | string | POST 请求中提交的。返回时会对 %## 做解码,+ 会被解码为空格。 |
type | string | POST 请求中的搜索引擎类型。 |
se_domain | string | POST 请求中的搜索引擎域名。 |
location_code | integer | POST 请求中的地区编码。 |
language_code | string | POST 请求中的语言编码。 |
check_url | string | 对应搜索结果的直达链接,可用于人工校验结果准确性。 |
datetime | string | 抓取结果时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
spell | object | 搜索引擎自动纠错信息。如被纠正,将返回纠正后的及纠错类型;否则为 null。 |
refinement_chips | object | 搜索细化筛选项。 |
item_types | array | 当前 SERP 中的结果类型。 |
se_results_count | integer | SERP 总结果数。 |
items_count | integer | items 数组中的结果数量。 |
items | array | SERP 中识别出的结果。 |
refinement_chips 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 refinement_chips。 |
xpath | string | 素的 XPath。 |
items | array | 细化筛选项列表。 |
refinement_chips.items[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 refinement_chips_element。 |
title | string | 筛选项标题。 |
url | string | 带筛选参数的搜索 URL。 |
domain | string | SERP 中显示的域名。 |
options | array | 进一步细化的筛选选项。 |
refinement_chips.items[].options[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 refinement_chips_option。 |
title | string | 选项标题。 |
url | string | 带筛选参数的搜索 URL。 |
domain | string | SERP 中显示的域名。 |
结果类型
item_types 可能以下值:
google_jobs_item
items[] 字段说明
google_jobs_item
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 google_jobs_item。 |
rank_group | integer | 分组排名。在相同 type 的结果中计算。 |
rank_absolute | integer | SERP 绝对排名,即在所有中的位置。 |
position | string | 素在页面中的位置,可为 left、right。 |
xpath | string | 素的 XPath。 |
job_id | string | Google Jobs 中的职位 ID。 |
title | string | 职位标题。 |
employer_name | string | 雇主名称。 |
employer_url | string | 雇主官网 URL。 |
employer_image_url | string | 职位所使用的图片地址。 |
location | string | 招聘地点。 |
source_name | string | 职位原始来源名称。 |
source_url | string | 原始职位页面 URL。 |
salary | string | 薪资信息;如未标注则为 null。 |
contract_type | string | 合同/雇佣类型。 |
timestamp | string | 职位发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
time_ago | string | 距离发布时间的相对时间描述。 |
rectangle | object | SERP 中该结果区域的坐标与像素尺寸;本接口场景下通常为 null。 |
调用示例
cURL
bash
id="02261816-2027-0066-0000-c27d02864073"
curl --location --request GET "https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02231256-2604-0066-2000-57133b8fc54e"
url = f"https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/{task_id}"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
data = response.json
print(data)TypeScript
typescript
import axios from "axios";
const taskId = "02231256-2604-0066-2000-57133b8fc54e";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/serp/google/jobs/task_get/advanced/${taskId}`,
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
})
.then((response) => {
// 结果数据
console.log(response.data);
})
.catch((error) => {
console.error(error);
});通过 tasks_ready 拉取已完成任务
在接中,通常调用 /v3/serp/google/jobs/tasks_ready 获取已完成任务列表,再逐个请求 /v3/serp/google/jobs/task_get/advanced/$id 获取结果。
Python 示例
python
import requests
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/serp/google/jobs/tasks_ready"
ready_resp = requests.get(ready_url, headers=headers)
ready_data = ready_resp.json
results = []
if ready_data.get("status_code") == 20000:
for task in ready_data.get("tasks", []):
for item in task.get("result", []):
endpoint = item.get("endpoint_advanced")
if endpoint:
# 2. 拉取每个已完成任务的高级结果
resp = requests.get(f"https://api.seermartech.cn{endpoint}", headers=headers)
results.append(resp.json)
print(results)响应示例
json
{
"version": "0.1.20220428",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0680 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "02231256-2604-0066-2000-57133b8fc54e",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0312 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"serp",
"google",
"jobs",
"task_get",
"advanced",
"02231256-2604-0066-2000-57133b8fc54e"
],
"data": {
"api": "serp",
"function": "task_get",
"se": "google",
"se_type": "jobs",
"keyword": ".net developer",
"language_code": "en",
"location_code": 2840,
"depth": 10,
"employment_type": null,
"device": "desktop",
"os": "windows"
},
"result": [
{
"keyword": ".net developer",
"type": "jobs",
"se_domain": "google.com",
"location_code": 2840,
"language_code": "en",
"datetime": "2022-06-08 08:44:34 +00:00",
"spell": null,
"se_results_count": 0,
"items_count": 10,
"items": [
{
"type": "google_jobs_item",
"rank_group": 1,
"rank_absolute": 1,
"position": "right",
"xpath": "/html/body/div/div/div/div/div/div/div/div/div/div/div/div/ul/li",
"job_id": "DfhOEnE2FFkAAAAAAAAAAA==",
"title": ".NET Developer (SR/SSR)",
"employer_name": "Upwork",
"employer_url": "http://www.elance.com/",
"employer_image_url": null,
"location": "United States",
"source_name": "via Upwork",
"source_url": "https://www.upwork.com/freelance-jobs/apply/NET-Developer-SSR_~015f52b11d62a99be1/?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"salary": null,
"contract_type": "Contractor",
"timestamp": "2022-06-07 21:44:32 +00:00",
"time_ago": "11 hours ago",
"rectangle": null
},
{
"type": "google_jobs_item",
"rank_group": 2,
"rank_absolute": 2,
"position": "right",
"xpath": "/html/body/div/div/div/div/div/div/div/div/div/div/div/div/ul/li",
"job_id": "RQeiSXggZy4AAAAAAAAAAA==",
"title": ".NET Developer/ Java Developer",
"employer_name": "People Tech Group Inc",
"employer_url": "http://peopletech.com/",
"employer_image_url": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTOiqLgAlZk4lD0TTkK8YevbUBDL0GhBBK7M5cv&s=0",
"location": "United States",
"source_name": "via LinkedIn",
"source_url": "https://www.linkedin.com/jobs/view/net-developer-java-developer-at-people-tech-group-inc-3113958650?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic",
"salary": null,
"contract_type": "Full–time",
"timestamp": "2022-06-07 18:44:32 +00:00",
"time_ago": "14 hours ago",
"rectangle": null
}
]
}
]
}
]
}状态码说明
- 顶层
status_code表示整次请求的处理状态; tasks[].status_code表示单个任务的处理状态;- 建议同时检查:
- 顶层
status_code == 20000 tasks_error == 0tasks[].result是否存在- 单任务状态码是否为成功状态
完整状态码与错误说明可参考 /v3/appendix/errors。
使用建议
- 通过创建任务接口创建 Google Jobs 抓取任务;
- 再通过
/v3/serp/google/jobs/tasks_ready轮询已完成任务; - 使用本接口按
id拉取高级结果; - 将
job_id、title、employer_name、location、salary、source_url等字段库,便于后续分析与监控。
实用场景
- 监控职位排名:定期抓取目标下的职位列表,跟踪不同招聘信息在 Google Jobs 中的位置变化。
- 汇总招聘来源:提取
source_name和source_url,识别职位主要分发平台,评估渠道覆盖。 - 分析薪资分布:基于
salary、location、contract_type等字段构建薪资对比报表,行业研究或招聘报分析。 - 识别竞品招聘动态:按
employer_name监控特定企业的岗位发布频率、岗位类型和地域布局,洞察竞品扩张方向。 - 构建职位数据仓库:将
job_id、职位标题、雇主、发布时间与来源链接标准化库,为 SEO选题、人才市场分析和行业趋势研究提供数据基础。