主题
获取 Amazon 评论 HTML 结果
接口说明
通过任务 id 获取 Amazon 评论采集任务的 HTML 结果。
请求方式: GET请求地址: https://api.seermartech.cn/v3/merchant/amazon/reviews/task_get/html/$id
该接口用于查询已创建任务的结果明细。任务提交后在创建任务时计费;结果获取接口在任务创建后的 7 天可重复调用。
费用说明:结果查询本身不单独计费,扣费以响应头
X-SeerMarTech-Charge-CNY为准。
请求参数
路径参数
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式。该 id 可在任务创建后的 7 天 用于随时获取结果。 |
响应结构
接口返回 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,完整列表见 /v3/appendix/errors |
status_message | string | 任务状态信息 |
time | string | 任务执行时间,单位:秒 |
cost | float | 当前任务成本,单位:USD |
result_count | integer | result 数组中的结果数 |
path | array | URL 路径 |
data | object | 与创建任务时 POST 请求中传的参数一致 |
result | array | 结果数组 |
result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
product_id | string | POST 请求中提交的 ASIN |
type | string | POST 请求中的搜索引擎类型 |
se_domain | string | POST 请求中的搜索引擎域名 |
location_code | integer | POST 请求中的地域编码 |
language_code | string | POST 请求中的语言编码 |
datetime | string | 结果获取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
items_count | integer | items 数组中的结果数量 |
items | array | HTML 页面及数据 |
items[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
page | integer | 返回的 HTML 页序号 |
date | string | HTML 页面抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
html | string | 页面 HTML |
调用说明
通常推荐按以下流程获取结果:
- 调用
/v3/merchant/amazon/reviews/tasks_ready获取已完成任务列表 - 再使用返回的任务
id或结果中的 HTML 查询端点 - 调用
/v3/merchant/amazon/reviews/task_get/html/$id获取 HTML 页面
请求示例
cURL
bash
id="04171455-0696-0192-0000-4c69cc29b945"
curl --location --request GET "https://api.seermartech.cn/v3/merchant/amazon/reviews/task_get/html/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02201115-0001-0066-0000-c06c8f23fce5"
url = f"https://api.seermartech.cn/v3/merchant/amazon/reviews/task_get/html/{task_id}"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
response = requests.get(url, headers=headers)
print(response.json)TypeScript
typescript
import axios from "axios";
const taskId = "02201115-0001-0066-0000-c06c8f23fce5";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/merchant/amazon/reviews/task_get/html/${taskId}`,
headers: {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
}).then((response) => {
// 输出结果数据
console.log(response.data);
}).catch((error) => {
console.error(error);
});查询已完成任务后批量获取结果
Python 示例
python
import requests
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/merchant/amazon/reviews/tasks_ready"
ready_response = requests.get(ready_url, headers=headers).json
results = []
if ready_response.get("status_code") == 20000:
for task_group in ready_response.get("tasks", []):
for task_info in task_group.get("result", []):
endpoint = task_info.get("endpoint_html")
if endpoint:
# 2. 通过返回的 endpoint_html 获取 HTML 结果
result = requests.get(
"https://api.seermartech.cn" + endpoint if endpoint.startswith("/v3/") else endpoint,
headers=headers
).json
results.append(result)
print(results)TypeScript 示例
typescript
import axios from "axios";
const headers = {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
};
async function fetchCompletedTaskResults {
const readyResponse = await axios.get(
"https://api.seermartech.cn/v3/merchant/amazon/reviews/tasks_ready",
{ headers }
);
const results: any[] = [];
if (readyResponse.data.status_code === 20000) {
for (const task of readyResponse.data.tasks || []) {
for (const taskInfo of task.result || []) {
if (taskInfo.endpoint_html) {
const endpoint = taskInfo.endpoint_html.startsWith("/v3/")
? `https://api.seermartech.cn${taskInfo.endpoint_html}`
: taskInfo.endpoint_html;
const resultResponse = await axios.get(endpoint, { headers });
results.push(resultResponse.data);
}
}
}
}
console.log(results);
}
fetchCompletedTaskResults.catch(console.error);响应示例
json
{
"version": "0.1.20220407",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1455 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"se_type": "reviews",
"api": "merchant",
"function": "reviews",
"se": "amazon",
"language_code": "en_US",
"location_code": 2840,
"asin": "B0773ZY26F",
"priority": 2,
"depth": 10,
"device": "desktop",
"os": "windows"
},
"result": []
}
]
}说明:示例响应存在结构省略,这里按可解析 JSON 形式整理展示。返回字段以线上响应为准。
状态码与异常处理
建议对以下两层状态进行判断:
- 顶层状态:
status_code、status_message - 任务级状态:
tasks[].status_code、tasks[].status_message
说明:
20000表示请求成功tasks_error > 0表示部分任务失败- 当任务状态码大于等于
40000时,通常表示任务执行或结果获取失败
完整错误码与说明请参考:/v3/appendix/errors
使用建议
- 结果接口支持在任务创建后 7 天 多次获取,适合做重试与补拉
- 如果需要批量获取结果,建议调用
/v3/merchant/amazon/reviews/tasks_ready items[].html返回的是原始页面 HTML,适合用于自定义解析、页面结构比对或证据留存- 若需复用提交参数,可直接读取
tasks[].data字段
实用场景
- 抓取评论原始页面:获取 Amazon 评论页 HTML,用于保留原始页面证据,便于后续审计和人工复核。
- 解析评论结构:基于返回的
html自行提取评论正文、评分、时间、等字段,构建更灵活的评论分析流程。 - 监控页面模板变化:定期对比不同时间返回的 HTML,及时发现评论页 DOM 结构调整,降低解析规则失效风险。
- 回溯已完成任务结果:在 7 天反复按
id取回结果,适合补数、失败重试和异步任务回查。 - 沉淀商品口碑样本库:按 ASIN 批量拉取评论页 HTML,建立商品评价原始样本,为感分析、竞品研究和差评洞察提供基础数据。