主题
获取 Gemini LLM Scraper HTML
GET /v3/ai_optimization/gemini/llm_scraper/task_get/html/{id}
接口说明
该接口用于根据任务 ID 获取已完成的 Gemini LLM Scraper 任务的 HTML 结果。
- 请求方式:
GET - 请求地址:
https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/task_get/html/$id
说明:
$id为任务唯一标识符- 任务 ID 为 UUID 格式
- 任务提交后,结果可在 7 天重复查询
- 在创建任务时计费,获取结果不重复收费
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
计费说明
本接口结果查询本身不额外收费,账户在创建任务时扣费;任务完成后,可在 7 天获取结果。
如需估算平台价格,请以任务提交类接口的定价为准;扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求参数
路径参数
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识符,UUID 格式。可在任务创建后的 7 天用于获取结果。 |
响应结构
接口返回 JSON 数据,顶层 tasks 数组,每个任务对象对应一个获取结果。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。完整错误码列表见 /v3/appendix/errors。建议在接时做好异常与错误处理。 |
status_message | string | 通用状态信息。完整信息列表见 /v3/appendix/errors。 |
time | string | 接口执行耗时,单位秒。 |
cost | float | 本次请求总成本,单位 USD。对于结果获取接口通常为 0。 |
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 | 与创建任务时传的参数一致。 |
result | array | 任务结果数组。 |
tasks[].result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
keyword | string | 创建任务时传的。返回时会对 %## 进行解码加号 + 会被解码为空格。 |
location_code | integer | 创建任务时传的位置编码。 |
language_code | string | 创建任务时传的语言编码。 |
datetime | string | 获取结果的时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。例如:2019-11-15 12:57:46 +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。 |
调用示例
cURL
bash
id="02261816-2027-0066-0000-c27d02864073"
curl --location --request GET "https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/task_get/html/${id}" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json"Python
python
import requests
task_id = "02261816-2027-0066-0000-c27d02864073"
url = f"https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/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 = "02201650-1073-0066-2000-1d132bb28897";
axios({
method: "get",
url: `https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/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);
});结合 tasks_ready 拉取已完成任务
在接中,通常通过 /v3/ai_optimization/gemini/llm_scraper/tasks_ready 获取已完成任务列表,再逐个调用本接口拉取 HTML 结果。
Python 示例:取完成任务,再获取 HTML
python
import requests
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
# 1. 获取已完成任务列表
ready_url = "https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/tasks_ready"
ready_resp = requests.get(ready_url, headers=headers).json
results = []
if ready_resp.get("status_code") == 20000:
for task_group in ready_resp.get("tasks", []):
for task_info in task_group.get("result", []) or []:
# 2. 通过返回的 endpoint_html 获取 HTML 结果
endpoint_html = task_info.get("endpoint_html")
if endpoint_html:
full_url = f"https://api.seermartech.cn{endpoint_html}"
task_resp = requests.get(full_url, headers=headers).json
results.append(task_resp)
# 3. 或通过 task id 拼接查询地址
# task_id = task_info.get("id")
# if task_id:
# url = f"https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/task_get/html/{task_id}"
# task_resp = requests.get(url, headers=headers).json
# results.append(task_resp)
print(results)响应示例
json
{
"version": "0.1.20260209",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1240 sec.",
"cost": 0,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "02261816-2027-0066-0000-c27d02864073",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0210 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v3",
"ai_optimization",
"gemini",
"llm_scraper",
"task_get",
"html"
],
"data": {
"api": "ai_optimization",
"function": "llm_scraper",
"se": "gemini",
"language_code": "en",
"location_code": 2840,
"keyword": "albert einstein",
"device": "desktop",
"os": "windows"
},
"result": [
{
"keyword": "albert einstein",
"location_code": 2840,
"language_code": "en",
"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 | 表示整个请求是否成功。 |
任务级 tasks[].status_code | 表示单个任务是否成功返回结果。 |
tasks_error | 表示本次返回中出错的任务数。 |
result 为空 | 任务可能尚未完成、已过期或执行失败。 |
完整错误码与消息说明见:/v3/appendix/errors
接建议:
- 判断顶层
status_code是否为20000 - 再逐个检查
tasks[].status_code - 对
4xxxx、5xxxx错误做好重试、告警和底处理 - 对 7 天的任务结果做过期处理
使用说明
- 本接口用于获取已完成任务的 HTML 结果
- 如果任务尚未完成,建议调用
/v3/ai_optimization/gemini/llm_scraper/tasks_ready html字段返回原始页面源码,适合做页面结构分析、抽取、提示词评估等后续处理data字段可用于校验返回结果与原始提交参数是否一致
实用场景
- 抓取回答页面源码:获取 Gemini 结果页原始 HTML,用于分析页面结构、模块布局与回答展示方式。
- 比对不同展示差异:按拉取对应 HTML,观察不同搜索意图下的页面呈现差异,为 SEO 策略调整提供依据。
- 提取页面:基于
html字段抽取标题、摘要、链接、卡片模块等信息,构建后续结构化分析流程。 - 监控结果页变化:定期拉取相同的 HTML 页面,识别页面模板或答案区块变动,及时发现流量影响因素。
- 评估可见性:检查品牌、产品或目标页面是否出现在抓取到的 HTML 中,判断在 AI 结果环境中的。