mcpField
G
google-finance

google-finance

github.com/gauss314数据与数据库252261 次安装19 周前更新
代码仓库

关于 google-finance

google-finance 是通过 Google Finance 未公开的内部 RPC 端点获取金融数据的 skill 和命令行工具,无需身份验证。它提供多类市场与公司数据,并说明了位置式响应的风险和严格的速率限制,适用于研究与原型开发。

主要功能

  1. 01报价及日内或历史 OHLC
  2. 02公司财务、财报与简介
  3. 03分析师观点、新闻与同行
  4. 04全球指数与行业热力图
  5. 05命令行模式与 RPC 目录
  6. 06风险提示与故障排查指南

适用场景

  1. 01获取分钟级数据用于个人研究
  2. 02比较不同公司的分析师观点
  3. 03查看全球指数和行业表现
  4. 04使用缓存数据制作分析原型

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gauss314/skills --skill google-finance

安装后在 Claude Code 中输入/google-finance确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
chunk_layouts.json
consent_cookies.json
rpc_ids.json
references/
COOKBOOK.md
LIMITATIONS_TROUBLESHOOTING.md
REFERENCE.md
RESPONSE_FORMAT.md
RPC_IDS.md
scripts/
fetch_gfinance.py

详细介绍

Google Finance — 通过无认证的内部 API 获取数据

用于从 Google Finance 提取数据的技能, 通过逆向工程发现的 内部 RPC 端点 batchexecute 获取数据——无需 API key,无需认证。

涵盖报价、历史 OHLC(盘中 1 分钟/5 分钟/每日/6 个月)、 批量财务数据、财报、包含个人意见(如 Goldman)的分析师建议、 包含地址和员工人数的公司简介、同行公司、新闻(含缩略图)、 全球指数(Dow/S&P/NASDAQ/VIX/DAX/FTSE/Nikkei) 以及行业热力图。


⚠️ 关键警告——请先阅读

在任何生产场景中使用此技能之前,必须先阅读 references/LIMITATIONS_TROUBLESHOOTING.md。

四项主要警告速览
  1. 🚨 非官方 API——Google 可能会重命名 RPC、修改布局、 添加认证,或在不事先通知的情况下关闭端点。
  2. 🚨 布局没有键——响应是位置数组。如果 Google 重新排列字段,你可能会在没有明显错误的情况下读取错误数据。
  3. 🚨 限流非常严格——请求速率超过 5 req/s 可能导致 IP 被封锁数小时。 建议:请求之间 sleep ≥ 0.5s。
  4. 🚨 不保证持续可用——如果要构建重要应用, 请准备其他数据提供商作为备用(Yahoo Finance、TradingView、Finnhub)。
不要使用此技能的场景
  • 在生产环境中进行涉及关键决策的交易(应使用官方数据源)。
  • 向用户提供数据的公开应用。
  • 请求量超过 10k requests/día(存在 IP 被永久封锁的风险)。
  • 将数据作为自己的数据重新分发(违反 Google 的使用条款)。
适合使用此技能的场景
  • 个人研究和原型开发。
  • 使用本地缓存进行回测。
  • 与其他数据提供商进行交叉比较分析。
  • 需要 Google 独有数据的场景(免费的盘中 1 分钟数据、 分析师个人意见的详细信息)。

🚀 快速开始

# Quote basico
py scripts/fetch_gfinance.py quote GGAL:NASDAQ
py scripts/fetch_gfinance.py quote AAPL:NASDAQ
py scripts/fetch_gfinance.py quote GGAL:BCBA       # mercado argentino

# Intraday del dia actual
py scripts/fetch_gfinance.py intraday-5min AAPL:NASDAQ
py scripts/fetch_gfinance.py intraday-1min GGAL:NASDAQ

# Daily historico
py scripts/fetch_gfinance.py daily-6m AAPL:NASDAQ

# Indices globales (Dow, S&P, NASDAQ, VIX, DAX, FTSE, Nikkei...)
py scripts/fetch_gfinance.py indices

# Analyst recommendations + opinions individuales
py scripts/fetch_gfinance.py analysts NVDA:NASDAQ

# Todo en uno (6 requests pipelinadas)
py scripts/fetch_gfinance.py all GGAL:NASDAQ

技能结构

skills/google-finance/
├── SKILL.md                                # Este archivo
├── references/                             # 5 documentos
│   ├── REFERENCE.md                        # Overview general + batchexecute
│   ├── RPC_IDS.md                          # Catalogo de los 14+ RPC IDs
│   ├── RESPONSE_FORMAT.md                  # Parser deep dive del wrb.fr protocol
│   ├── LIMITATIONS_TROUBLESHOOTING.md      # ⚠️ Warnings, plan B, debugging
│   └── COOKBOOK.md                         # 25 recetas listas
├── assets/                                 # 3 archivos JSON
│   ├── rpc_ids.json                        # Catalogo estructurado de RPCs + args
│   ├── chunk_layouts.json                  # Layouts posicionales de los arrays
│   └── consent_cookies.json                # Cookies de bypass del consent
└── scripts/
    └── fetch_gfinance.py                   # Script principal — 19 modos CLI

提供 19 种 CLI 模式

按标的代码查询
模式数据RPC ID
quote SYM价格 + 涨跌 + 货币 + 市场交易时段gCvqoe
quote-full SYM报价 + 行业 + 市值 + 成交量dlNq8b
description SYM简介 + 地址 + 员工人数 + 比率 + URLJL8oKc
peers SYM相关股票(默认 4 个,可通过 --peers-count 控制)SICF5d
analysts SYM建议摘要 + 分析师个人意见YTM9q
earnings SYM多周期财报历史XxQsbd
technicals SYM技术评级(类似 TradingView Recommend.*)gXxkFd
financials SYM损益表 + 资产负债表 + 现金流,约 22 KB,多周期Pr8h2e
intraday-1min SYM当日 1 分钟 OHLC(约 30 KB)c2u4wc
intraday-5min SYM5 分钟 OHLC,包含完整 OHLC 数据(约 5 KB)c2u4wc
daily SYM最近一个月的每日 OHLC(约 22 天)c2u4wc
daily-6m SYM最近约 6 个月的每日 OHLCc2u4wc
news SYM标的专属新闻kA4MVd
news-related SYM全球新闻(包含查询中的相关标的代码)kA4MVd
全局数据(无需标的代码)
模式数据RPC ID
indices全球指数:Dow、S&P、NASDAQ、VIX、DAX、FTSE、Nikkei 等hgueg
sectors股票行业热力图(医疗保健、科技等)vNewwe
本地目录(无需 HTTP)
模式数据
rpcsRPC ID 目录,含参数模板和说明
layouts嵌套数组的位置布局
cookies用于绕过同意页面的 Cookie
组合模式
模式数据
all SYM报价 + 简介 + 分析师 + 财务数据 + 每日数据 + 新闻(6 次请求)

符号格式

位置格式示例
美股代码TICKER:NASDAQ 或 TICKER:NYSEAAPL:NASDAQ、JPM:NYSE
阿根廷 ADRTICKER:NASDAQ 或 TICKER:NYSEGGAL:NASDAQ、BBAR:NYSE
BCBA 代码(阿根廷本地)TICKER:BCBAGGAL:BCBA、YPFD:BCBA
巴西 B3TICKER:BMFBOVESPAPETR4:BMFBOVESPA
西班牙 BMETICKER:BMESAN:BME
德国 XetraTICKER:XETRSAP:XETR
指数IDX:INDEXSP/DJX/NASDAQ/CBOE.INX:INDEXSP、.DJI:INDEXDJX

脚本也接受反向顺序(NASDAQ:GGAL)——会自动检测 交易所。但 Google 的标准格式是 TICKER:EXCHANGE。


相较于仓库中其他 skills 的独特优势

功能Google FinanceTradingViewYahooFinnhub
无需认证✅✅✅免费增值
公开免费的 1 分钟 OHLC 日内数据✅ 唯一❌(付费)⚠️ 有限⚠️ 付费
完整的 5 分钟 OHLC 数据✅❌⚠️⚠️
一次调用获取全球指数(Dow+S&P+NASDAQ+VIX+DAX+FTSE+Nikkei...)✅ 唯一⚠️ 逐个获取⚠️⚠️
单个分析师观点详情(姓名、公司、目标价、日期)✅ 唯一⚠️ 仅汇总⚠️✅
板块热力图✅⚠️❌❌
公司描述,含实际地址和员工人数✅ 唯一⚠️⚠️✅
延迟报价✅✅✅✅
财务数据✅(约 22 KB)✅✅✅
带缩略图的新闻✅✅✅✅
何时选择 Google Finance 而非 TradingView
  • 需要免费的 1 分钟 OHLC 日内数据。
  • 需要包含分析师姓名、公司、目标价和日期的单个分析师观点详情。
  • 需要获取阿根廷公司的实际地址。
  • 需要通过一次调用获取全球指数(Dow+S&P+NASDAQ+VIX+DAX+FTSE+Nikkei)。
何时选择 TradingView 而非 Google Finance
  • 需要使用类似 SQL 的筛选条件进行大规模筛选。
  • 需要获取符号的 ISIN/CUSIP/CIK(Symbol Search v3)。
  • 需要预先计算的技术指标(RSI/MACD/EMAs/枢轴点)。
  • 需要稳定性——TV 比 Google Finance 稳定得多。

技术注意事项

端点
POST https://www.google.com/finance/beta/_/FinHubUi/data/batchexecute?rpcids={RPC_ID}
必需的 Headers

已在脚本中配置:

HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
    "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
    "X-Same-Domain": "1",           # CRITICO
    "Origin": "https://www.google.com",
    "Referer": "https://www.google.com/finance/...",
}
绕过限制所需的 Cookies

脚本会自动传递:

COOKIES = {
    "CONSENT": "PENDING+999",
    "SOCS": "CAESHAgBEhJnd3NfMjAyNTAxMjMtMF9SQzMaAmVuIAEaBgiAvLW8Bg",
}

如果失效,请参阅 LIMITATIONS_TROUBLESHOOTING.md 第 6 节, 以获取新的 Cookies。

响应格式(wrb.fr)

响应使用 Google 的 wrb.fr 协议(XSSI 前缀 + 双重序列化的 JSON)。 脚本包含用于处理该格式的 parse_wrbfr()。 详情请参阅 RESPONSE_FORMAT.md。

速率限制

⚠️ 限制严格。建议:

  • 请求间隔至少 0.5 秒。
  • 每天少于 1k 次请求,以免触发 IP 封锁。
  • 未采取预防措施时,不要在 CI 中使用(云 IP 已列入黑名单)。
输出
  • 默认:将 JSON 输出到 stdout。
  • -o archivo.json:保存到文件(UTF-8,ensure_ascii=False)。
  • -q:静默模式(不输出 INFO 日志)。
  • --raw:返回原始响应,不从 wrb.fr 数组中提取内容。
错误处理

脚本会捕获 requests.HTTPError 并显示响应正文以供调试。 如果端点停止工作,会提示你查看 LIMITATIONS_TROUBLESHOOTING.md。


常见用例——快速示例

COOKBOOK.md 中有 25 个完整示例。

# Quote rapido
py scripts/fetch_gfinance.py quote GGAL:NASDAQ -q

# Stock argentino BCBA
py scripts/fetch_gfinance.py quote GGAL:BCBA -q

# Indices globales del dia
py scripts/fetch_gfinance.py indices -q

# Intraday 5-min con OHLC completo
py scripts/fetch_gfinance.py intraday-5min AAPL:NASDAQ -o aapl_5min.json

# Daily ultimos 6 meses
py scripts/fetch_gfinance.py daily-6m AAPL:NASDAQ -o aapl_6m.json

# Analyst recommendations + opinions individuales
py scripts/fetch_gfinance.py analysts NVDA:NASDAQ -q

# Comparar empresa con peers
py scripts/fetch_gfinance.py peers GGAL:NASDAQ --peers-count 5 -q

# Todo-en-uno (snapshot completo)
py scripts/fetch_gfinance.py all GGAL:NASDAQ -o ggal_complete.json

完整文档

文档内容
references/REFERENCE.md总览 + batchexecute 深入解析
references/RPC_IDS.md14+ 个 RPC ID 的详细目录,包含参数和输出
references/RESPONSE_FORMAT.mdwrb.fr 解析器深入解析(XSSI、双重 JSON、边缘情况)
references/LIMITATIONS_TROUBLESHOOTING.md⚠️ 警告、调试,以及使用替代服务提供商的备用方案
references/COOKBOOK.md25 个可直接复制粘贴的示例
assets/rpc_ids.jsonRPC 目录,包含参数模板和说明
assets/chunk_layouts.json每个数组的位置布局(哪个索引对应哪个字段)
assets/consent_cookies.json用于绕过 consent screen 的 Cookie

灵感与致谢

此 skill 基于对 google.com/finance/beta/quote/GGAL:NASDAQ HTML 的研究构建, 通过该研究识别出采用 “Wiz” 系统的 AF_initDataCallback 分块 (Search、Maps、Translate 也使用此系统)。wrb.fr 协议是公开的,且由社区(而非 Google)完善记录。

其他语言的类似实现:

  • google-finance-quotes(Node.js)—— 使用相同的端点
  • mfinance(Python,采用不同的方法)
  • 多个用于抓取 finance.google.com 的 OSS 项目

此 skill 的特点:

  1. 24 种 CLI 模式,涵盖 14+ 个不同的 RPC ID。
  2. 详尽记录警告和备用方案。
  3. 结构化目录:RPC 及其位置布局均收录在 assets 中。
  4. 健壮的 wrb.fr 解析器,可处理所有边缘情况。

评论

支持 Markdown