Skip to content

AI 优化 ChatGPT LLM 抓取结果 HTML

接口说明

该接口用于按指定关键词、语言和地区,实时获取 LLM 抓取结果页的原始 HTML。

返回结果适合以下场景:

  • 获取页面原始结构,进行自定义解析
  • 保存抓取快,做页面对比或审计
  • 提取引用区、结果块等前端渲染信息

请求方式:

POST /v3/ai_optimization/wp/v2/live/html

完整地址:

https://api.seermartech.cn/v3/ai_optimization/wp/v2/live/html

计费说明

该接口按请求计费,每次请求都会产生费用。

原文未给出固定单价,因此无法直接换算人民币。扣费以响应头 X-SeerMarTech-Charge-CNY 为准

请求限制

  • 所有 POST 数据使用 JSON(UTF-8 编码)
  • 请求体为 JSON 数组[{ ... }]
  • 每次 Live LLM Scraper 请求只能一个任务
  • 调用频率上限:2000 次/分钟

请求参数

任务参数说明

字段名类型说明
keywordstring。查询,最长支持 2000 个字符%## 会被解码,字符 + 会被解码为空格。如果本身需要 %,请写为 %25;如果需要 +,请写为 %2B
location_namestring搜索地区名。未传 location_code 时填。传该字段后可不传 location_code。可通过 /v3/ai_optimization/wp/locations 或位置列表接口获取可用地区名称。示例:United States
location_codeinteger搜索地区编码。未传 location_name 时填。传该字段后可不传 location_name。可通过 /v3/ai_optimization/wp/v2/locations 获取可用地区编码。示例:2840
language_namestring搜索语言名。未传 language_code 时填。传该字段后可不传 language_code。可通过 /v3/ai_optimization/wp/v2/languages 获取可用语言名称。示例:English
language_codestring搜索语言代码。未传 language_name 时填。传该字段后可不传 language_name。可通过 /v3/ai_optimization/wp/v2/languages 获取可用语言代码。示例:en
force_web_searchboolean可选。是否强制 AI 代理使用 Web 搜索。启用后,模型会尽量访问并引用当前网页信息。默认值:false注意:即使设置为 true,也不能保证响应中一定会出现网页来源引用。
expand_citationsboolean可选。是否返回展开后的引用栏 HTML。启用该参数时,同时将 force_web_search 设为 true。默认值:false
tagstring可选。用户自定义任务标识,最长 255 个字符。可用于请求结果映射,响应中的 data 对象会返回该值。

响应结构

接口返回 JSON 数据,顶层 tasks 数组。

顶层字段

字段名类型说明
versionstring当前 API 版本
status_codeinteger通用状态码。完整错误码见 /v3/appendix/errors
status_messagestring通用状态信息
timestring执行耗时,单位秒
costfloat本次请求总费用,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorinteger返回错误的任务数量
tasksarray任务结果数组

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常在 10000-60000
status_messagestring任务状态信息
timestring任务执行耗时,单位秒
costfloat该任务费用,单位 USD
result_countintegerresult 数组中的结果数量
patharrayURL 路径
dataobject回显请求时提交的参数
resultarray结果数组

result[] 字段

字段名类型说明
keywordstring请求中的。返回时 %## 会被解码,+ 会被解码为空格
location_codeinteger请求中的地区编码
language_codestring请求中的语言代码
datetimestring获取结果的时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00
items_countintegeritems 数组中的结果数
itemsarray返回的结果项数组

items[] 字段

字段名类型说明
pageinteger返回的 HTML 页面序号
datestringHTML 页面扫描时间,格式示例:2019-11-15 12:57:46 +00:00
htmlstring原始 HTML 页面

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/ai_optimization/wp/v2/live/html" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "language_code": "en",
 "location_code": 2840,
 "keyword": "albert einstein"
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/ai_optimization/wp/v2/live/html"
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}
data = [
 {
 "language_code": "en",
 "location_code": 2840,
 "keyword": "albert einstein"
 }
]

response = requests.post(url, json=data, headers=headers)
result = response.json

if result.get("status_code") == 20000:
 print(result)
else:
 print(f'error. Code: {result.get("status_code")} Message: {result.get("status_message")}')

TypeScript

typescript
import axios from "axios";

async function fetchLlmHtml {
 const response = await axios.post(
 "https://api.seermartech.cn/v3/ai_optimization/wp/v2/live/html",
 [
 {
 language_code: "en",
 location_code: 2840,
 keyword: "albert einstein",
 },
 ],
 {
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json",
 },
 }
 );

 const result = response.data;

 if (result.status_code === 20000) {
 console.log(result);
 } else {
 console.log(`error. Code: ${result.status_code} Message: ${result.status_message}`);
 }
}

fetchLlmHtml;

响应示例

json
{
 "version": "0.1.20200130",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "7.7543 sec.",
 "cost": 0.003,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "ai_optimization",
 "function": "live",
 "se": "wp",
 "se_type": "v2",
 "language_name": "English",
 "location_name": "United States",
 "keyword": "albert einstein",
 "tag": "tag1",
 "device": "desktop",
 "os": "windows"
 },
 "result": [
 {
 }
 ]
 }
 ]
}

说明:示例响应存在截断,未完整展示 tasksresult/items 的字段。返回时请以接口真实响应为准,并重点 html 字段中的页面原始。


错误处理建议

  • 请根据顶层 status_code 和任务级 tasks[].status_code 双层判断调用是否成功
  • 建议对 /v3/appendix/errors 中的错误码建立统一处理机制
  • force_web_search=true 但未返回引用,属于可能的正常,不应简单判定为失败
  • 若需要引用展开区域 HTML,请确保同时传:
  • force_web_search: true
  • expand_citations: true

使用说明补

  • location_namelocation_code 二选一即可
  • language_namelanguage_code 二选一即可
  • 本接口返回的是原始 HTML,不是结构化摘要数据
  • 如果要做稳定的数据提取,建议结合自定义 HTML 解析逻辑使用
  • 中的特殊字符应按规则编码,否则可能导致查询词与预期不一致

实用场景

  • 抓取结果页快:保存指定在特定地区与语言下的 LLM 结果页 HTML,用于版本留档、页面变化追踪和合规审计。
  • 解析引用来源区域:启用网页搜索与引用展开后,提取引用栏 HTML,分析模型更偏好引用哪些站点与类型。
  • 监控品牌可见性:定期请求品牌词、产品词的结果页 HTML,检查品牌是否出现在回答、引用或模块中。
  • 对比地区语言差异:针对同一按不同 location_codelanguage_code 获取页面 HTML,分析不同市场下回答呈现方式差异。
  • 构建自定义抽取流程:将返回的原始 HTML 接解析器,提取标题、摘要、引用块等字段,沉淀为可分析的 SEO 数据资产。

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