主题
Gemini LLM 抓取结果 HTML(实时)
POST /v3/ai_optimization/gemini/llm_scraper/live/html
本接口用于按指定关键词、语言和地域,实时获取 Gemini LLM 抓取结果的原始 HTML 页面。
接口返回的是 HTML 原文,适合用于页面结构分析、结果验证、引用来源展示还原等场景。
接口地址
POST https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/live/html
计费说明
该接口按请求计费,每次请求都会产生费用。
参考价约 ¥0.0640 / 次 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求说明
- 请求方式:
POST - 请求体格式:
JSON - 编码:
UTF-8 - 请求体为 JSON 数组格式:
[{ ... }] - 每次 Live LLM Scraper 请求只能 1 个任务
- 最高请求频率:2000 次/分钟
任务请求参数
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | 填。,最长支持 2000 个字符。 %## 会被解码,字符 + 会被解码为空格。如果中需要保留 %,请写为 %25;如果需要保留 +,请写为 %2B。 |
location_name | string | 搜索地域完整名称。当未提供 location_code 或 location_coordinate 时填。使用该字段时,无需再传 location_code 或 location_coordinate。示例:United States |
location_code | integer | 搜索地域编码。当未提供 location_name 或 location_coordinate 时填。使用该字段时,无需再传 location_name 或 location_coordinate。示例:2840 |
location_coordinate | string | GPS 坐标位置。当未提供 location_name 或 location_code 时填。格式为 "latitude,longitude,radius"。纬度和经度最多支持 7 位小数;radius 最小值为 199(毫米),最大值为 199999(毫米)。示例:53.476225,-2.243572,200 |
language_name | string | 搜索语言完整名称。当未提供 language_code 时填。使用该字段时,无需再传 language_code。示例:English |
language_code | string | 搜索语言代码。当未提供 language_name 时填。使用该字段时,无需再传 language_name。示例:en |
expand_citations | boolean | 可选。是否在 HTML 结果中返回展开后的引用栏。启用后,接口将返回引用区域展开后的 HTML。默认值:false |
tag | string | 可选。自定义任务标识,最长 255 个字符。可用于请求与结果的对应匹。返回结果中的 data 对象会带回该值。 |
语言与地域列表
可通过以下容路径获取可用语言和地域:
- 地域列表:
/v3/ai_optimization/gemini/llm_scraper/locations - 语言列表:
/v3/ai_optimization/gemini/llm_scraper/languages
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码。完整错误码可参考 /v3/appendix/errors |
status_message | string | 通用状态信息 |
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 | 请求路径 |
data | object | 与请求中提交的参数基本一致 |
result | array | 结果数组 |
result 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | 请求中的。返回时 %## 会被解码,+ 会被解码为空格 |
location_code | integer | 请求中的地域编码 |
language_code | string | 请求中的语言代码 |
datetime | string | 获取结果的时间,UTC 格式:yyyy-mm-dd hh:mm:ss +00:00 |
items_count | integer | items 数组中的结果数量 |
items | array | 抓取结果项 |
items 数组字段
| 字段名 | 类型 | 说明 |
|---|---|---|
page | integer | 返回的 HTML 页序号 |
date | string | HTML 页面抓取时间,格式示例:2019-11-15 12:57:46 +00:00 |
html | string | 原始 HTML 页面 |
请求示例
cURL
bash
curl --location --request POST "https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/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/gemini/llm_scraper/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, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
async function main {
const response = await axios.post(
"https://api.seermartech.cn/v3/ai_optimization/gemini/llm_scraper/live/html",
[
{
language_code: "en",
location_code: 2840,
keyword: "albert einstein",
},
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
console.log(response.data);
}
main.catch(console.error);响应示例
json
{
"version": "0.1.20260209",
"status_code": 20000,
"status_message": "Ok.",
"time": "25.1849 sec.",
"cost": 0.004,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "ai_optimization",
"function": "llm_scraper",
"se": "gemini",
"language_code": "en",
"location_code": 2840,
"keyword": "albert einstein",
"postback_data": "html",
"device": "desktop",
"os": "windows"
},
"result": [
{
}
]
}
]
}错误处理
- 顶层
status_code表示整次请求的处理状态 tasks[].status_code表示单个任务的执行状态- 建议同时处理 HTTP 状态码与业务状态码
- 完整错误码与状态说明可参考:
/v3/appendix/errors
常见处理建议:
20000:请求成功- 非
20000:根据status_message和错误码执行重试、参数修正或告警 - 当
tasks_error大于0时,应逐个检查tasks中失败任务
使用说明补
keyword支持较长文本,但需注意%与+的编码规则。- 地域参数三选一:
location_name、location_code、location_coordinate。 - 语言参数二选一:
language_name或language_code。 - 若需要抓取带有展开引用栏的结果页面,请将
expand_citations设为true。 - 本接口返回的是原始 HTML,而不是结构化摘要结果,适合后续自行解析。
实用场景
- 抓取结果页原文:获取指定在目标语言与地域下的原始 HTML,用于还原展示并做人工质检。
- 分析引用来源展示:启用
expand_citations后提取展开引用栏,识别答案引用的网站与页面来源,策略制定。 - 监测地域差异:对同一按不同
location_code拉取 HTML,比较不同国家/地区的结果页差异,支持 SEO 决策。 - 验证语言版本输出:按不同
language_code获取页面原文,检查多语言结果呈现是否一致,化投放。 - 构建自定义解析器:基于返回的 HTML 自行抽取模块、引用、卡片和页面结构特征,形成可视化监控或竞品分析能力。