主题
获取 Amazon ASIN HTML 结果
GET /v3/merchant/amazon/asin/task_get/html/{id}
接口说明
用于根据任务 id 获取 Amazon ASIN 任务的 HTML 抓取结果。
- 请求方式:
GET - 接口地址:
https://api.seermartech.cn/v3/merchant/amazon/asin/task_get/html/$id
该接口用于查询已创建任务的结果。任务发布后,通常应通过已完成任务列表接口获取可拉取的任务,再根据任务 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 | 本次请求总成本,单位。 |
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 | 当前任务成本,单位。 |
result_count | integer | result 数组中的结果数量。 |
path | array | 当前请求的 URL 路径信息。 |
data | object | 与创建任务时传参数一致的数据对象。 |
result | array | 任务结果数组。 |
tasks[].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 页面及数据。 |
tasks[].result[].items[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
page | integer | 返回的 HTML 页面序号。 |
date | string | HTML 页面抓取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
html | string | 页面 HTML。 |
使用说明
推荐调用流程如下:
- 调用
/v3/merchant/amazon/asin/tasks_ready获取已完成任务; - 从返回结果中取得可用任务
id或endpoint_html; - 再调用
/v3/merchant/amazon/asin/task_get/html/$id拉取对应 HTML 结果。
请求示例
cURL
bash
id="04171455-0696-0192-0000-4c69cc29b945"
curl --location --request GET "https://api.seermartech.cn/v3/merchant/amazon/asin/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/asin/task_get/html/{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.text)TypeScript
typescript
import axios from "axios";
const taskId = "02201115-0001-0066-0000-c06c8f23fce5";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/merchant/amazon/asin/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.response?.data || error.message);
});结合 tasks_ready 获取结果示例
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/asin/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_group in ready_data.get("tasks", []):
for task_item in task_group.get("result", []) or []:
endpoint_html = task_item.get("endpoint_html")
task_id = task_item.get("id")
# 2)优使用 endpoint_html 获取结果
if endpoint_html:
result_resp = requests.get(
f"https://api.seermartech.cn{endpoint_html}",
headers=headers
)
results.append(result_resp.json)
# 3)或使用任务 id 直接获取
# if task_id:
# result_resp = requests.get(
# f"https://api.seermartech.cn/v3/merchant/amazon/asin/task_get/html/{task_id}",
# headers=headers
# )
# results.append(result_resp.json)
print(results)TypeScript
typescript
import axios from "axios";
const headers = {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
};
async function fetchReadyTasksAndResults {
const readyResponse = await axios.get(
"https://api.seermartech.cn/v3/merchant/amazon/asin/tasks_ready",
{ headers }
);
const readyData = readyResponse.data;
const results: any[] = [];
if (readyData.status_code === 20000) {
for (const taskGroup of readyData.tasks || []) {
for (const task of taskGroup.result || []) {
if (task.endpoint_html) {
const resultResponse = await axios.get(
`https://api.seermartech.cn${task.endpoint_html}`,
{ headers }
);
results.push(resultResponse.data);
}
// 也可以改为通过 id 获取
// if (task.id) {
// const resultResponse = await axios.get(
// `https://api.seermartech.cn/v3/merchant/amazon/asin/task_get/html/${task.id}`,
// { headers }
// );
// results.push(resultResponse.data);
// }
}
}
} else {
console.error(`错误:${readyData.status_code} - ${readyData.status_message}`);
}
console.log(results);
}
fetchReadyTasksAndResults.catch(console.error);响应示例
json
{
"version": "0.1.20200416",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2244 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "04171455-0696-0192-0000-4c69cc29b945",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0218 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"merchant",
"amazon",
"asin",
"task_get",
"html",
"04171455-0696-0192-0000-4c69cc29b945"
],
"data": {
"se_type": "shopping",
"api": "merchant",
"function": "asin",
"se": "amazon",
"language_code": "en_US",
"location_code": 2840,
"asin": "B0756FCPPN",
"priority": 2,
"device": "desktop",
"os": "windows"
},
"result": [
{
"product_id": "B0756FCPPN",
"type": "shopping",
"se_domain": "amazon.com",
"location_code": 2840,
"language_code": "en_US",
"datetime": "2019-11-15 12:57:46 +00:00",
"items_count": 1,
"items": [
{
"page": 1,
"date": "2019-11-15 12:57:46 +00:00",
"html": "<html>...</html>"
}
]
}
]
}
]
}状态码与错误处理
- 顶层
status_code表示本次 API 请求是否成功; tasks[].status_code表示任务是否成功;- 建议同时校验:
- HTTP 状态码
- 顶层
status_code - 任务级
tasks[].status_code result是否为空
完整错误码与信息可参考 /v3/appendix/errors。
常见处理建议:
| 场景 | 建议 |
|---|---|
status_code 非 20000 | 视为请求级失败,记录日志并重试或告警。 |
tasks[].status_code >= 40000 | 视为任务级错误,检查任务参数或任务状态。 |
result 为空 | 任务可能尚未完成,建议通过 /v3/merchant/amazon/asin/tasks_ready 确认可拉取状态。 |
| 过 7 天未拉取 | 结果可能已过期,需重新创建任务。 |
结果解读
该接口返回的是目标 ASIN 页面原始 HTML,可用于:
- 自定义解析商品标题、价格、评分、评论数、库存状态等字段;
- 对比不同国家站点、语言、设备环境下的页面差异;
- 存档页面快,用于异常排查或竞品监测。
需要注意:
html为原始页面,体积可能较大;- 不同地区、设备、语言设置下页面结构可能不同;
- 建议在本地建立解析与容错机制,依赖固定 DOM 结构。
实用场景
- 监控商品页变动:定期抓取指定 ASIN 的原始 HTML,及时发现标题、价格、评分或页面结构变化。
- 解析竞品页:提取竞品商品页中的核心展示信息,为选品分析、价格监控和优化提供依据。
- 对比多站点展示差异:获取不同
location_code、language_code下的页面 HTML,分析本地化呈现策略。 - 追踪页面异常:在商品转化下滑或流量异常时,回溯历史 HTML 快,定位页面缺失、信息变更或渲染异常。
- 构建自定义字段抽取器:基于返回的
html搭建解析规则,沉淀适合自身业务的商品页数据资产。