关于 macrotrends
这是一款命令行技能,从 Macrotrends 抓取美国上市股票及 ADR 的历史财务数据。它无需 API 密钥,可从网页数据提取报表、比率和员工人数,覆盖约 15 年的年度及部分季度数据。
主要功能
- 01利润表、资产负债表和现金流
- 0220 项财务比率
- 03年度员工人数
- 04年度及季度报表选项
- 05自动查询股票代码对应的 slug
- 06JSON 输出和请求延迟控制
适用场景
- 01比较公司历年财务报表
- 02查看季度业绩和财务比率
- 03追踪年度员工人数
- 04将财务数据导出为 JSON
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gauss314/ skills --skill macrotrends安装后在 Claude Code 中输入/macrotrends确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/MARKETS_REFERENCE.mdSTATEMENTS_REFERENCE.mdscripts/fetch_financials.py详细介绍
Macrotrends — 财务数据抓取工具
用于抓取 Macrotrends 的工具,可提取历史财务数据:损益表、资产负债表、现金流量表、财务比率和员工人数,涵盖 约 6,500 只美国市场股票代码(NYSE、NASDAQ、AMEX),包括来自 30 多个国家的国际 ADR,数据最长可追溯 15 年以上。
数据以 JSON 格式嵌入页面(无需 API key,只需 requests + BeautifulSoup)。
⚠️ 法律声明
- Macrotrends 没有官方公共 API。此抓取工具访问的是网络上公开可用的数据。
- 请遵守 Macrotrends 的服务条款。
- 请实施速率限制(请求间隔至少 2 秒,建议 3 秒)。
- 网站可能会更改 HTML/JS 结构,导致抓取工具无法运行。
安装
pip install requests beautifulsoup4
脚本
| 脚本 | 描述 |
|---|---|
| fetch_financials.py | 主脚本:财务报表、比率、员工人数 |
快速使用
# Income statement anual
python scripts/fetch_financials.py --ticker NVDA --income
# Todo lo disponible (income + balance + cashflow + ratios + employees)
python scripts/fetch_financials.py --ticker AAPL --all
# Statements trimestrales
python scripts/fetch_financials.py --ticker MSFT --income --quarterly
python scripts/fetch_financials.py --ticker MSFT --balance --quarterly
# Ratios anuales o trimestrales
python scripts/fetch_financials.py --ticker NVDA --ratios
python scripts/fetch_financials.py --ticker GGAL --ratios --quarterly
# Employee count
python scripts/fetch_financials.py --ticker NVDA --employees
# Output a archivo JSON
python scripts/fetch_financials.py --ticker AAPL --all --output data.json
# Silencioso (solo JSON)
python scripts/fetch_financials.py --ticker NVDA --all --quiet
可用端点
| 标志 | 数据 | 频率 | 周期 |
|---|---|---|---|
--income | 损益表 | 年度、季度 | 约 15 年 / 约 60 个季度 |
--balance | 资产负债表 | 年度、季度 | 约 15 年 / 约 60 个季度 |
--cashflow | 现金流量表 | 仅年度 | 约 15 年 |
--ratios | 财务比率(20 项比率) | 年度、季度 | 约 15 年 / 约 60 个季度 |
--employees | 员工人数 | 年度 | 约 15 年 |
--all | 以上所有数据 | 根据 --quarterly | - |
其他标志
| 标志 | 描述 |
|---|---|
--quarterly | 使用季度频率(适用时) |
--output | 输出 JSON 文件(默认:stdout) |
--slug | 手动指定 slug(搜索无法正常工作时) |
--delay | 请求间隔(默认:3.0s) |
--quiet | 静默模式 |
股票代码 → slug 解析
Macrotrends 使用格式为 /stocks/charts/{TICKER}/{SLUG}/financial-statements 的 URL。
slug 会通过内部搜索端点自动解析。示例:
| 股票代码 | Slug |
|---|---|
| AAPL | apple |
| NVDA | nvidia |
| MSFT | microsoft |
| GGAL | grupo-financiero-galicia-sa |
| TSLA | tesla |
如果搜索失败,可以手动传入 slug:
python scripts/fetch_financials.py --ticker GGAL --slug grupo-financiero-galicia-sa --all
各类报表的可用数据
损益表(22 个字段)
收入、销货成本、毛利、研发、销售及管理费用、营业收入、净利润、EBITDA、EBIT、每股收益、流通股数等。
资产负债表(23 个字段)
现金、应收款、存货、总资产、总负债、股东权益、债务、留存收益等。
现金流量表(29 个字段)
净利润、折旧、营运资本变动、资本支出、自由现金流、股息、股票回购等。
财务比率(20 项比率)
流动比率、债务/权益比率、毛利率/营业利润率/净利率、ROE、ROA、ROI、每股账面价值、每股自由现金流等。
员工人数
逐年统计的员工总数。
完整字段参考请见 references/STATEMENTS_REFERENCE.md。
市场覆盖范围
Macrotrends 涵盖在 NYSE、NASDAQ 和 AMEX 上市的 约 6,500 只股票代码(包括 ADR)。
| 类型 | 数量 | 示例 |
|---|---|---|
| 美国普通股 | 约 5,300 | AAPL、NVDA、MSFT |
| 国际 ADR | 约 276+ | GGAL(阿根廷)、BABA(中国)、TM(日本)、PBR(巴西)、SAN(西班牙)、BP(英国) |
| ETF 和基金 | 约 91 | SPY、QQQ、VTI |
| A/B 类股票 | 约 22 | BRK.A、BRK.B |
市场、按国家划分的 ADR 以及搜索股票代码的方法详见 references/MARKETS_REFERENCE.md。
请求频率限制
| 行为 | 建议 |
|---|---|
| 连续发送请求且不延迟 | 429 Too Many Requests |
| 建议延迟 | 每次请求间隔 3 秒 |
| 每次执行的 Ticker 数量 | 最多约 5-6 个(以避免被封锁) |
| 退避 | 如果收到 429,请等待 30-60 秒 |
常见错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
429 Too Many Requests | 请求频率限制 | 增大 --delay 或等待 |
slug not found | 无法解析 Ticker | 手动使用 --slug |
No data found for X | 端点不可用 | 确认该 Ticker 存在于 Macrotrends 上 |
originalData not found | 页面结构已更改 | 报告 issue |
Skill 结构
skills/macrotrends/
├── SKILL.md # Este archivo
├── references/
│ ├── STATEMENTS_REFERENCE.md # Referencia de campos
│ └── MARKETS_REFERENCE.md # Cobertura de mercados y ADRs
└── scripts/
└── fetch_financials.py # Script principal