主题
Google Finance Quote 实时 HTML
本接口用于获取 Google Finance「Quote」标签页的原始 HTML。返回结果会受到请求参数影响,主要:keyword 中的股票代码/证券代码,以及 location、language 等搜索环境参数。
接口为实时请求模式,请求后直接返回结果。适合需要抓取原始页面结构、解析展示区块、或对接自定义页面解析逻辑的场景。
接口地址
POST https://api.seermartech.cn/v3/serp/wp/v2/live/html
说明:参考文档标题对应的是 Google Finance Quote 页面,但示例路径使用的是容 API 路径
/v3/serp/wp/v2/live/html。接时请以容路径为准。
计费说明
每次请求都会计费。
参考价约 ¥0.0480 / 次 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求说明
- 请求方法:
POST - 请求体格式:
JSON - 编码:
UTF-8 - 请求体为 JSON 数组:
[{ ... }] - 单次 Live SERP 请求支持 1 个任务
- 频率上限:最多 2000 次 API 调用/分钟
主要参数
| 字段名 | 类型 | 填 | 说明 |
|---|---|---|---|
keyword | string | 是 | 股票代码或证券代码。用于指定交易股票或证券在特定交易所的 ticker/symbol。最长支持 700 个字符。字段中的 %## 会被解码,字符 + 会被解码为空格;如果确实需要传 %,请写为 %25;需要传 +,请写为 %2B。 |
location_code | integer | 条件填 | 搜索引擎地区代码。若未传 location_name,则此字段填;如果使用该字段,则无需传 location_name。可通过 /v3/serp/google/locations 查询可用地区代码。示例:2840 |
language_code | string | 条件填 | 搜索引擎语言代码。若未传 language_name,则此字段填;如果使用该字段,则无需传 language_name。可通过 /v3/serp/google/languages 查询可用语言代码。示例:en |
device | string | 否 | 设备类型。可选值:desktop |
附加参数
| 字段名 | 类型 | 填 | 说明 |
|---|---|---|---|
location_name | string | 条件填 | 搜索引擎地区名。若未传 location_code,则此字段填;如果使用该字段,则无需传 location_code。可通过 /v3/serp/google/locations 查询。示例:London,England,United Kingdom |
language_name | string | 条件填 | 搜索引擎语言名。若未传 language_code,则此字段填;如果使用该字段,则无需传 language_code。可通过 /v3/serp/google/languages 查询。示例:English |
os | string | 否 | 设备操作系统。可选值:windows |
tag | string | 否 | 自定义任务标识,最长 255 个字符。可用于在结果中匹业务侧任务;响应中的 data 对象会原样返回该值。 |
window | string | 否 | google_finance_quote 图表时间窗口。可选值:1D、5D、1M、6M、YTD、1Y、5Y、MAX。默认值:1D |
返回结果说明
接口返回 JSON 数据,顶层 tasks 数组,每个任务中对应结果。
顶层字段
| 字段名 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码,完整列表参考 /v3/appendix/errors |
status_message | string | 通用提示信息,完整列表参考 /v3/appendix/errors |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总成本,单位 USD |
tasks_count | integer | tasks 数组中的任务数量 |
tasks_error | integer | 返回错误的任务数量 |
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 | 结果数组 |
result[] 字段
| 字段名 | 类型 | 说明 |
|---|---|---|
keyword | string | POST 请求中传的。返回时 %## 会被解码,+ 会被解码为空格 |
type | string | 请求中的搜索引擎类型 |
se_domain | string | 请求中的搜索引擎域名 |
location_code | integer | 请求中的地区代码 |
language_code | string | 请求中的语言代码 |
datetime | string | 结果获取时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00 |
items_count | integer | items 数组中的结果数量 |
items | array | SERP 结果项数组 |
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/serp/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": "NASDAQ-100"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/serp/wp/v2/live/html"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"language_code": "en",
"location_code": 2840,
"keyword": "NASDAQ-100"
}
]
response = requests.post(url, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
async function fetchFinanceQuoteHtml {
const response = await axios.post(
"https://api.seermartech.cn/v3/serp/wp/v2/live/html",
[
{
language_code: "en",
location_code: 2840,
keyword: "NASDAQ-100",
},
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
// 输出接口返回结果
console.log(response.data);
}
fetchFinanceQuoteHtml.catch(console.error);响应示例
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": "serp",
"function": "live",
"se": "wp",
"se_type": "v2",
"language_name": "English",
"location_name": "United States",
"keyword": "NASDAQ-100",
"tag": "tag1",
"device": "desktop",
"os": "windows"
},
"result": [
{}
]
}
]
}错误处理
请重点以下字段:
- 顶层
status_code:表示整个请求的处理状态 - 顶层
tasks_error:表示任务级错误数量 tasks[].status_code:表示单个任务的执行状态tasks[].status_message:表示单个任务的错误或提示信息
错误码完整列表可参考:/v3/appendix/errors
常见处理建议:
- 当顶层
status_code非20000时,优按请求失败处理 - 当
tasks_error > 0时,逐个检查tasks[].status_code - 当成功返回
html后,再业务侧 HTML 解析流程 - 对
keyword中%、+的,务按编码规则处理,查询词失真
使用说明补
- 该接口返回的是原始 HTML,不保证页面结构长期稳定
- 如果你需要抽取结构化数据,建议结合自定义解析器或后处理规则
window参数会影响金融图表区间展示,适合抓取不同时间窗口下的页面表现- 单次请求支持一个任务,不建议按批量直接拼到同一请求中
实用场景
- 抓取股票页原始 HTML,用于自建解析器提取价格、涨跌、图表区间等展示信息
- 对比不同地区与语言下的 Quote 页面差异,评估金融化展示效果
- 监控指定 ticker 页面结构变化,及时发现目标页面改版对采集逻辑的影响
- 采集不同时间窗口(如
1D、1M、1Y)的页面 HTML,用于构建历史展示变化分析 - 校验证券代码在指定搜索环境中的可展示性,金融收录与可见性分析