主题
获取 Tripadvisor 评论任务结果
接口说明
该接口用于根据任务 id 获取 Tripadvisor 评论采集任务的结果。返回通常:
- 商家名称与地址
- 评论总数
- 综合评分与评分分布
- 单条评论
- 评论时间、访问时间
- 评论资料
- 商家回复
- 评论图片与高亮信息
返回结果严格对应您在创建任务时传的 url_path。本平台会尽可能高精度模拟任务设置时的请求参数,以便返回与目标页面当时展示一致的数据。
您也可以使用响应中的 check_url 进行人工核验。建议在浏览器无痕模式下访问,以减少个性化因素干扰。需要注意的是,用户偏好、历史记录及个性化展示因素不会被系统模拟,因此不会体现在返回结果中。
请求方式
GET https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/task_get/$id
计费说明
该接口本身不会重复收费,账户在创建任务时扣费;任务结果在 30 天可反复获取。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
路径参数
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。任务创建后可在 30 天随时用该 id 获取结果。 |
沙箱调试
您可以通过以下沙箱地址获取该接口的完整字段结构示例,字段中会填模拟数据:
https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/task_get/00000000-0000-0000-0000-000000000000
调用沙箱接口不会产生费用。
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
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 | 任务结果数组 |
建议在接时完善异常处理逻辑,覆盖任务失败、结果为空、状态码异常等。
tasks[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常为 10000-60000 |
status_message | string | 任务状态说明 |
time | string | 任务执行耗时,单位秒 |
cost | float | 该任务成本,单位 USD |
result_count | integer | result 数组数量 |
path | array | URL 路径 |
data | object | 含创建任务时传的参数 |
result | array | 结果数组 |
result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
url_path | string | POST 创建任务时传的 URL 路径 |
type | string | POST 任务中的搜索引擎类型 |
se_domain | string | POST 任务中的搜索引擎域名 |
check_url | string | 可直接访问的目标结果页面链接,用于人工校验 |
datetime | string | 抓取结果时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
title | string | 评论模块标题,通常为商家名称 |
location | string | 商家地址 |
reviews_count | integer | 评论总数 |
rating | object | 商家综合评分 |
rating_type | string | 评分类型,可为 Max5、Percents、CustomMax |
value | float | 平均评分 |
votes_count | integer | 投票数 |
rating_max | integer | 当前 rating_type 的最大值 |
rating_distribution | object | 1 到 5 分的评分分布 |
1 | integer | 1 分票数 |
2 | integer | 2 分票数 |
3 | integer | 3 分票数 |
4 | integer | 4 分票数 |
5 | integer | 5 分票数 |
items_count | integer | 当前结果中的评论条数;如需更多评论,请在创建任务时增大 depth |
items | array | 评论列表;如需更多评论,请在创建任务时增大 depth |
items[] 评论字段
| 字段名 | 类型 | 说明 |
|---|---|---|
type | string | 评论类型,固定可能值:tripadvisor_review_search |
rank_group | integer | 在相同 type 分组的位置 |
rank_absolute | integer | 在评论中的绝对位置 |
position | string | 页面位置;该接口文档中可见值为 right,结果中也可能出现 left |
url | string | 评论页链接 |
rating | object | 评论提交的评分 |
rating.rating_type | string | 评分类型,通常为 Max5 |
rating.value | float | 评分值 |
rating.votes_count | integer | 反馈数量;该字段在本场景中通常为 null |
rating.rating_max | integer | 评分上限,Max5 时通常为 5 |
date_of_visit | string | 评论到访日期,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
timestamp | string | 评论发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
review_id | string | 评论 ID |
title | string | 评论标题 |
review_text | string | 评论正文 |
language | string | 评论文本语言 |
original_language | string | 评论原始语言 |
review_images | array | 评论图片列表 |
review_images[].url | string | 评论图片 URL |
user_profile | object | 评论资料 |
user_profile.name | string | 评论昵称 |
user_profile.url | string | 评论主页链接 |
user_profile.image_url | string | 评论头像链接 |
user_profile.location | string | 评论所在地 |
user_profile.reviews_count | string | 评论累计评论数 |
responses | array | 商家回复信息 |
responses[].title | string | 回复标题,通常表示商家名称或回复名称 |
responses[].text | string | 回复 |
responses[].language | string | 回复语言 |
responses[].response_id | string | 回复 ID |
responses[].timestamp | string | 回复发布时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
review_highlights | array | 评论高亮维度与评价 |
review_highlights[].feature | string | 被评价的特征项 |
review_highlights[].assessment | string | 对该特征项的评价 |
调用示例
curl
bash
id="04011058-0696-0199-0000-2196151a15cb"
curl --location --request GET "https://api.seermartech.cn/v3/business_data/tripadvisor/reviews/task_get/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02231934-2604-0066-2000-570459f04879"
url = f"https://api.seermartech.cn/v3/business_data/tripadvisor/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/tripadvisor/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);
});获取已完成任务后再获取结果
通常推荐调用已完成任务列表接口,再逐个按 id 获取结果:
- 获取已完成任务列表:
GET /v3/business_data/tripadvisor/reviews/tasks_ready - 按任务 ID 获取结果:
GET /v3/business_data/tripadvisor/reviews/task_get/$id
这适合批量任务消费场景,可重复轮询未完成任务。
Python 示例:取 ready 任务,再拉结果
python
import requests
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
ready_url = "https://api.seermartech.cn/v3/business_data/tripadvisor/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 []:
endpoint = item.get("endpoint")
if endpoint:
resp = requests.get(f"https://api.seermartech.cn{endpoint}", headers=headers)
results.append(resp.json)
else:
print("error:", ready_resp.get("status_code"), ready_resp.get("status_message"))
print(results)响应示例
json
{
"version": "0.1.20250526",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0801 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "business_data",
"function": "reviews",
"se": "tripadvisor",
"url_path": "Hotel_Review-g60763-d23462501-Reviews-Margaritaville_Times_Square-New_York_City_New_York.html",
"location_code": 1003854,
"depth": 10,
"device": "desktop",
"os": "windows"
},
"result": [
{
"type": "tripadvisor_review_search",
"rank_group": 2,
"rank_absolute": 2,
"position": "left",
"url": "https://www.tripadvisor.com/ShowUserReviews-g60763-d23462501-r1011196323-Margaritaville_Resort_Times_Square-New_York_City_New_York.html",
"rating": {
"rating_type": "Max5",
"value": 1,
"votes_count": null,
"rating_max": 5
},
"date_of_visit": "2025-05-31 00:00:00 +00:00",
"timestamp": "2025-06-05 00:00:00 +00:00",
"review_id": "903636367",
"title": "What a terrible turn-off!",
"review_text": "What a terrible turn-off! Afterwards, we were charged on our credit card for 500 dollars for supposedly smoking in our room.",
"language": "en",
"original_language": "nl",
"review_images": null,
"user_profile": {
"name": "Kees J",
"url": "https://www.tripadvisor.com/Profile/397keesj",
"image_url": "https://media-cdn.tripadvisor.com/media/photo-o/1a/f6/e2/e6/default-avatar-2020-45.jpg",
"location": null,
"reviews_count": 1
},
"responses": null,
"review_highlights": null
}
]
}
]
}状态码与错误处理
- 顶层
status_code表示本次 API 请求的整体状态 tasks[].status_code表示单个任务的执行状态- 当
tasks[].status_code >= 40000或result为空时,建议按失败处理 - 完整错误码和说明请参考:
/v3/appendix/errors
建议重点处理以下:
- 任务 ID 不存在或已过期
- 任务尚未完成,结果为空
- 请求参数格式错误
- 鉴权失败
- 账户余额不足或额受限
使用建议
- 通过创建任务接口创建评论采集任务。
- 通过
/v3/business_data/tripadvisor/reviews/tasks_ready获取已完成任务。 - 使用本接口按
id拉取完整结果。 - 如果评论数量不足,可在创建任务时提高
depth参数。 - 使用
check_url对样本做抽样校验,确保结果符合业务要求。
实用场景
- 监控门店口碑变化:按门店定期抓取最新评论、评分和评分分布,及时发现差评激增与服务异常。
- 分析负面反馈主题:提取
review_text、review_highlights和评分,识别卫生、价格、服务等高频投诉点。 - 跟踪商家回复表现:基于
responses字段判断是否回复用户、回复时效如何,用于客户成功与声誉管理评估。 - 研究多语言口碑:结合
language与original_language字段,分析不同国家/语种用户对同一商家的评价差异。 - 构建竞品评论数据库:批量采集目标商家和竞品的评论、评分和评论画像,用于、景点、餐饮等本地商业对标分析。