Skip to content

获取 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 为准

请求参数

路径参数

字段类型说明
idstring任务唯一标识符,UUID 格式。可在任务创建后的 7 天用于获取结果。

响应结构

接口返回 JSON 数据,顶层 tasks 数组,每个任务对象对应一个获取结果。

顶层字段

字段类型说明
versionstring当前 API 版本。
status_codeinteger通用状态码。完整错误码列表见 /v3/appendix/errors。建议在接时做好异常与错误处理。
status_messagestring通用状态信息。完整信息列表见 /v3/appendix/errors
timestring接口执行耗时,单位秒。
costfloat本次请求总成本,单位 USD。对于结果获取接口通常为 0
tasks_countintegertasks 数组中的任务数量。
tasks_errorintegertasks 数组中返回错误的任务数量。
tasksarray任务结果数组。

tasks[] 字段

字段类型说明
idstring任务唯一标识符,UUID 格式。
status_codeinteger任务级状态码,范围通常为 10000-60000。完整列表见 /v3/appendix/errors
status_messagestring任务级状态信息。
timestring任务处理耗时,单位秒。
costfloat当前任务成本,单位 USD。
result_countintegerresult 数组中的结果数量。
patharray当前请求的 URL 路径信息。
dataobject与创建任务时传的参数一致。
resultarray任务结果数组。

tasks[].result[] 字段

字段类型说明
keywordstring创建任务时传的。返回时会对 %## 进行解码加号 + 会被解码为空格。
location_codeinteger创建任务时传的位置编码。
language_codestring创建任务时传的语言编码。
datetimestring获取结果的时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。例如:2019-11-15 12:57:46 +00:00
items_countintegeritems 数组中的结果条数。
itemsarray抓取到的搜索结果页面 HTML 列表。

tasks[].result[].items[] 字段

字段类型说明
pageinteger返回的 HTML 页序号。
datestringHTML 页面扫描时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
htmlstring页面 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

接建议:

  1. 判断顶层 status_code 是否为 20000
  2. 再逐个检查 tasks[].status_code
  3. 4xxxx5xxxx 错误做好重试、告警和底处理
  4. 对 7 天的任务结果做过期处理

使用说明

  • 本接口用于获取已完成任务的 HTML 结果
  • 如果任务尚未完成,建议调用 /v3/ai_optimization/gemini/llm_scraper/tasks_ready
  • html 字段返回原始页面源码,适合做页面结构分析、抽取、提示词评估等后续处理
  • data 字段可用于校验返回结果与原始提交参数是否一致

实用场景

  • 抓取回答页面源码:获取 Gemini 结果页原始 HTML,用于分析页面结构、模块布局与回答展示方式。
  • 比对不同展示差异:按拉取对应 HTML,观察不同搜索意图下的页面呈现差异,为 SEO 策略调整提供依据。
  • 提取页面:基于 html 字段抽取标题、摘要、链接、卡片模块等信息,构建后续结构化分析流程。
  • 监控结果页变化:定期拉取相同的 HTML 页面,识别页面模板或答案区块变动,及时发现流量影响因素。
  • 评估可见性:检查品牌、产品或目标页面是否出现在抓取到的 HTML 中,判断在 AI 结果环境中的。

统一入口:官网 · LLM API · 控制台