主题
按任务 ID 获取 Google Extended Reviews 结果
接口说明
用于根据任务 ID 获取 Google Extended Reviews 任务结果。
返回结果与您在创建任务时指定的本地商家名称、搜索引擎、位置和语言参数严格对应。本平台会尽可能高精度地模拟指定的位置与搜索环境,因此返回通常可与任务提交时的搜索结果保持一致。
您可以通过响应中的 check_url 使用无痕模式打开对应页面,核验结果性。需要注意的是,用户偏好、搜索历史及个性化因素不会被纳入模拟,因此这些因素不会体现在返回结果中。
请求方式
GET https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{id}
计费说明
账户在创建任务时扣费;任务结果在 30 天可重复获取。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
路径参数
| 参数名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式。创建任务后,可在 30 天随时使用该 ID 获取结果。 |
返回结构
接口返回 JSON 数据,顶层 tasks 数组,每个任务对象对应一次任务结果。
沙箱调试
可使用以下沙箱地址查看该端点支持的完整字段结构,返回为模拟数据,不会产生费用:
https://sandbox.seermartech.cn/v3/business_data/google/extended_reviews/task_get/00000000-0000-0000-0000-000000000000
响应字段说明
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本号 |
status_code | integer | 局状态码,完整列表见 /v3/appendix/errors |
status_message | string | 局状态信息,完整列表见 /v3/appendix/errors |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求涉及任务总成本,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | tasks 数组中返回错误的任务数量 |
tasks | array | 任务结果数组 |
建议在生产环境中基于
status_code和任务级状态码实现完整的异常处理机制。
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务 ID,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000,完整列表见 /v3/appendix/errors |
status_message | string | 任务状态说明 |
time | string | 任务执行耗时,单位秒 |
cost | float | 任务成本,单位 USD |
result_count | integer | result 数组中的数量 |
path | array | 请求路径 |
data | object | 创建任务时提交的原始参数 |
result | array | 结果数组 |
tasks[].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 |
title | string | SERP 中 reviews 模块标题,即被采集商家的名称 |
sub_title | string | reviews 模块副标题,通常为地址等附加信息 |
rating | object | 商家评分信息 |
feature_id | string | SERP 中 reviews素的唯一标识符 |
place_id | string | 商家地点的唯一标识符 |
cid | string | 平台定义的本地商家唯一 ID |
reviews_count | integer | 评论总数 |
items_count | integer | items 数组中的评论数量;如需更多评论,应在创建任务时增加 depth |
items | array | 评论列表 |
rating 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
rating_type | string | 评分类型,可能值:Max5、Percents、CustomMax |
value | float | 平均评分 |
votes_count | integer | 投票数 |
rating_max | integer | 当前评分类型的满分值 |
items[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 评论类型,固定可能值:google_extended_reviews_search |
rank_group | integer | 在相同 type素组的位置 |
rank_absolute | integer | 在评论中的绝对排名 |
position | string | 评论在 SERP 中的位置,文档定义值为 right |
xpath | string | 评论的 XPath |
review_text | string | 评论正文 |
original_review_text | string | 评论原文;不应用自动翻译 |
time_ago | string | 相对发布时间,如 “2 weeks ago” |
timestamp | string | 评论发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
rating | object | 评论提交的评分 |
reviews_count | integer | 评论累计提交的评论数 |
photos_count | integer | 评论累计上传的数 |
local_guide | boolean | 是否为本地向导用户 |
profile_name | string | 评论昵称 |
profile_url | string | 评论主页链接 |
review_url | string | 评论链接 |
profile_image_url | string | 评论头像链接 |
owner_answer | string | 商家回复 |
original_owner_answer | string | 商家回复原文;不应用自动翻译 |
owner_time_ago | string | 商家回复的相对发布时间 |
owner_timestamp | string | 商家回复时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
review_id | string | 评论唯一标识 |
images | array | 评论附带图片 |
review_highlights | array | 评论高亮标签,被评价维度与评价结果 |
source | object | 评论来源信息 |
items[].rating 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
rating_type | string | 评分类型,可为 Max5、CustomMax |
value | float | 评分值 |
votes_count | integer | 该评论获得的反馈数量 |
rating_max | integer | 评分满分;例如 Max5 的满分为 5 |
items[].images[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 素类型,固定为 images_element |
alt | string | 图片 alt 文本 |
image_url | string | 评论图片地址 |
items[].review_highlights[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
feature | string | 被评价的维度 |
assessment | string | 对该维度的评价结果 |
items[].source 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
title | string | 评论来源名称 |
image | string | 来源图片 |
domain | string | 来源域名 |
请求示例
cURL
bash
id="04011058-0696-0199-0000-2196151a15cb"
curl --location --request GET "https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "05211333-2692-0298-0000-047fc45592ce"
url = f"https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{task_id}"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.status_code)
print(response.json)TypeScript
typescript
import axios from "axios";
const taskId = "02231934-2604-0066-2000-570459f04879";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${taskId}`,
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
})
.then((response) => {
// 返回任务结果
console.log(response.data);
})
.catch((error) => {
console.error(error);
});获取已完成任务后逐个获取结果
该接口常与 /v3/business_data/google/extended_reviews/tasks_ready合使用:获取已完成任务列表,再按任务 ID 调用本接口拉取。
Python
python
import requests
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/business_data/google/extended_reviews/tasks_ready"
ready_resp = requests.get(ready_url, headers=headers).json
results = []
if ready_resp.get("status_code") == 20000:
for task in ready_resp.get("tasks", []):
for item in task.get("result", []) or []:
task_id = item.get("id")
if task_id:
# 2. 按任务 ID 获取结果
result_url = f"https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/{task_id}"
result_resp = requests.get(result_url, headers=headers).json
results.append(result_resp)
print(results)
else:
print(f'error. Code: {ready_resp.get("status_code")} Message: {ready_resp.get("status_message")}')TypeScript
typescript
import axios from "axios";
const headers = {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
};
async function fetchExtendedReviewsResults {
try {
// 1. 获取已完成任务列表
const readyResponse = await axios.get(
"https://api.seermartech.cn/v3/business_data/google/extended_reviews/tasks_ready",
{ headers }
);
const tasksInfo = readyResponse.data;
const taskResponses: any[] = [];
if (tasksInfo.status_code === 20000) {
for (const task of tasksInfo.tasks || []) {
for (const item of task.result || []) {
if (item.id) {
// 2. 按任务 ID 获取结果
const taskGetResponse = await axios.get(
`https://api.seermartech.cn/v3/business_data/google/extended_reviews/task_get/${item.id}`,
{ headers }
);
taskResponses.push(taskGetResponse.data);
}
}
}
if (taskResponses.length > 0) {
console.log(taskResponses);
} else {
console.log("No completed tasks");
}
} else {
console.log(`error. Code: ${tasksInfo.status_code} Message: ${tasksInfo.status_message}`);
}
} catch (error) {
console.error(error);
}
}
fetchExtendedReviewsResults;响应示例
json
{
"version": "0.1.20241028",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0798 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"se_type": "extended_reviews",
"se": "google",
"api": "business_data",
"function": "extended_reviews",
"location_name": "London,England,United Kingdom",
"language_name": "english",
"cid": "17626775537598922320",
"device": "desktop",
"os": "windows"
},
"result": [
{
"review_highlights": [],
"source": {
"title": "Google",
"image": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
"domain": "www.google.com"
}
},
{
"type": "google_extended_reviews_search",
"rank_group": 2,
"rank_absolute": 2,
"position": "left",
"xpath": null,
"review_text": "Booked this last minute. We stayed for 1 night and paid £242.",
"original_review_text": null,
"time_ago": "2 weeks ago",
"timestamp": "2024-10-13 17:10:32 +00:00",
"rating": {
"rating_type": "Max5",
"value": 3,
"votes_count": null,
"rating_max": 5
},
"reviews_count": 5,
"photos_count": null,
"local_guide": false,
"profile_name": "H K",
"profile_url": "https://www.google.com/maps/contrib/102701210192886520050/reviews?hl=en-GB",
"review_url": "https://www.google.com/maps/reviews/data=!4m8...",
"profile_image_url": "https://lh3.googleusercontent.com/a/ACg8ocLqRnc2bmgjmTnVBfpp-Lcu23T1vZgR1Tjo7Ktn6gZQQVLH5g=s64-c-rp-mo-br100",
"owner_answer": null,
"original_owner_answer": null,
"owner_time_ago": null,
"owner_timestamp": null,
"review_id": "ChdDSUhNMG9nS0VJQ0FnSUNYdE9yeXFnRRAB",
"images": null,
"review_highlights": [],
"source": {
"title": "Google",
"image": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
"domain": "www.google.com"
}
}
]
}
]
}状态码说明
| 状态码范围 | 含义 |
|---|---|
20000 | 请求成功 |
10000-60000 | 任务级状态码范围,表示处理状态、参数问题或异常 |
完整错误码与信息说明请参考 /v3/appendix/errors。
使用建议
- 通过创建任务接口提交采集请求,再保存返回的任务 ID。
- 结果建议通过
/v3/business_data/google/extended_reviews/tasks_ready批量发现已完成任务后,再调用本接口逐个拉取。 - 若需要更多评论记录,请在创建任务时增加
depth参数。 - 对于多语言评论,可结合
original_review_text与review_text对比使用。 - 商家回复分析可重点
owner_answer、owner_timestamp等字段。
实用场景
- 监控门店口碑变化:持续拉取单个门店的最新评论、评分和评论总量,及时发现评分下滑或负面反馈集中出现的时间段。
- 分析用户评价重点:提取
review_text、review_highlights和评分字段,识别用户最常提及的服务、设施、位置等优缺点。 - 评估商家回复效率:结合
owner_answer、owner_time_ago、owner_timestamp,统计门店是否回复评论以及回复时效,优化本地运营。 - 建立竞品评论对比库:按
cid或place_id获取多个商家的评论,横向比较评分、评论密度、负面主题和用户满意度。 - 构建本地 SEO 预警机制:当出现低分评论、差评激增或特定负面时自动预警,帮助品牌及时处理本地搜索声誉问题。