macrotrends
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMacrotrends — Financial Data Scraper
Macrotrends — 财务数据采集工具
Scraper de Macrotrends que extrae datos financieros históricos: income statements, balance sheets, cash flow statements, financial ratios y employee count con hasta 15+ años de data para ~6,500 tickers de mercados US (NYSE, NASDAQ, AMEX), incluyendo ADRs internacionales de +30 países.
Los datos vienen en JSON embebido en la página (no requiere API key, solo + ).
requestsBeautifulSoup一款针对Macrotrends的数据采集工具,可提取历史财务数据:income statements(利润表)、balance sheets(资产负债表)、cash flow statements(现金流量表)、financial ratios(财务比率)以及employee count(员工数量),覆盖美国市场(NYSE、NASDAQ、AMEX)约6500只股票代码,包括来自30多个国家的国际ADRs,数据年限可达15年以上。
数据以JSON格式嵌入网页中(无需API密钥,仅需 + 工具)。
requestsBeautifulSoup⚠️ Aviso Legal
⚠️ 法律声明
- Macrotrends no tiene API pública oficial. Este scraper accede a datos públicamente disponibles en la web.
- Respetá los términos de servicio de Macrotrends.
- Implementá rate limiting (mín 2 segundos entre requests, recomendado 3s).
- El sitio puede cambiar su estructura HTML/JS, rompiendo el scraper.
- Macrotrends 无官方公开API。本采集工具仅访问网页上公开可用的数据。
- 请遵守Macrotrends的服务条款。
- 请实现请求速率限制(请求间隔至少2秒,推荐3秒)。
- 网站可能更改HTML/JS结构,导致采集工具失效。
Instalación
安装
bash
pip install requests beautifulsoup4bash
pip install requests beautifulsoup4Scripts
脚本
| Script | Descripción |
|---|---|
| fetch_financials.py | Script principal: statements, ratios, employees |
| 脚本 | 描述 |
|---|---|
| fetch_financials.py | 主脚本:获取财务报表、比率及员工数据 |
Uso rápido
快速使用
bash
undefinedbash
undefinedIncome statement anual
年度利润表
python scripts/fetch_financials.py --ticker NVDA --income
python scripts/fetch_financials.py --ticker NVDA --income
Todo lo disponible (income + balance + cashflow + ratios + employees)
获取全部可用数据(利润表+资产负债表+现金流量表+财务比率+员工数据)
python scripts/fetch_financials.py --ticker AAPL --all
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
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
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
python scripts/fetch_financials.py --ticker NVDA --employees
Output a archivo JSON
输出至JSON文件
python scripts/fetch_financials.py --ticker AAPL --all --output data.json
python scripts/fetch_financials.py --ticker AAPL --all --output data.json
Silencioso (solo JSON)
静默模式(仅输出JSON)
python scripts/fetch_financials.py --ticker NVDA --all --quiet
---python scripts/fetch_financials.py --ticker NVDA --all --quiet
---Endpoints disponibles
可用端点
| Flag | Data | Frecuencias | Períodos |
|---|---|---|---|
| Income Statement | Anual, Trimestral | ~15 años / ~60 quarters |
| Balance Sheet | Anual, Trimestral | ~15 años / ~60 quarters |
| Cash Flow | Solo anual | ~15 años |
| Financial Ratios (20 ratios) | Anual, Trimestral | ~15 años / ~60 quarters |
| Employee Count | Anual | ~15 años |
| Todos los anteriores | Según | - |
| 参数 | 数据类型 | 频率 | 周期 |
|---|---|---|---|
| Income Statement | 年度、季度 | ~15年 / ~60个季度 |
| Balance Sheet | 年度、季度 | ~15年 / ~60个季度 |
| Cash Flow | 仅年度 | ~15年 |
| Financial Ratios(20种比率) | 年度、季度 | ~15年 / ~60个季度 |
| Employee Count | 年度 | ~15年 |
| 以上全部数据 | 取决于 | - |
Flags adicionales
额外参数
| Flag | Descripción |
|---|---|
| Usa frecuencia trimestral (donde esté disponible) |
| Archivo JSON de salida (default: stdout) |
| Slug manual (si el search no funciona) |
| Delay entre requests (default: 3.0s) |
| Modo silencioso |
| 参数 | 描述 |
|---|---|
| 使用季度频率(在可用情况下) |
| 输出JSON文件(默认:标准输出) |
| 手动指定slug(当自动搜索失效时) |
| 请求间隔时间(默认:3.0秒) |
| 静默模式 |
Resolución ticker → slug
股票代码 → slug 解析
Macrotrends usa URLs con el formato .
/stocks/charts/{TICKER}/{SLUG}/financial-statementsEl slug se resuelve automáticamente via el search endpoint interno. Ejemplos:
| Ticker | Slug |
|---|---|
| AAPL | |
| NVDA | |
| MSFT | |
| GGAL | |
| TSLA | |
Si el search falla, se puede pasar el slug manualmente:
bash
python scripts/fetch_financials.py --ticker GGAL --slug grupo-financiero-galicia-sa --allMacrotrends使用如下格式的URL:。
/stocks/charts/{TICKER}/{SLUG}/financial-statementsslug会通过内部搜索端点自动解析。示例:
| 股票代码 | Slug |
|---|---|
| AAPL | |
| NVDA | |
| MSFT | |
| GGAL | |
| TSLA | |
如果自动搜索失败,可手动传入slug:
bash
python scripts/fetch_financials.py --ticker GGAL --slug grupo-financiero-galicia-sa --allDatos disponibles por statement
各报表可用数据
Income Statement (22 campos)
Income Statement(22个字段)
Revenue, COGS, Gross Profit, R&D, SG&A, Operating Income, Net Income, EBITDA, EBIT, EPS, Shares Outstanding, etc.
Revenue、COGS、Gross Profit、R&D、SG&A、Operating Income、Net Income、EBITDA、EBIT、EPS、Shares Outstanding等。
Balance Sheet (23 campos)
Balance Sheet(23个字段)
Cash, Receivables, Inventory, Total Assets, Total Liabilities, Shareholders Equity, Debt, Retained Earnings, etc.
Cash、Receivables、Inventory、Total Assets、Total Liabilities、Shareholders Equity、Debt、Retained Earnings等。
Cash Flow (29 campos)
Cash Flow(29个字段)
Net Income, Depreciation, Working Capital Changes, Capex, Free Cash Flow, Dividends, Stock Repurchases, etc.
Net Income、Depreciation、Working Capital Changes、Capex、Free Cash Flow、Dividends、Stock Repurchases等。
Financial Ratios (20 ratios)
Financial Ratios(20种比率)
Current Ratio, Debt/Equity, Gross/Operating/Net Margins, ROE, ROA, ROI, Book Value/Share, FCF/Share, etc.
Current Ratio、Debt/Equity、Gross/Operating/Net Margins、ROE、ROA、ROI、Book Value/Share、FCF/Share等。
Employee Count
Employee Count
Año a año, empleados totales.
Ver referencia completa de campos en references/STATEMENTS_REFERENCE.md.
逐年统计的员工总数。
完整字段参考请查看references/STATEMENTS_REFERENCE.md。
Cobertura de Mercados
市场覆盖
Macrotrends cubre ~6,500 tickers que cotizan en NYSE, NASDAQ y AMEX (incluyendo ADRs).
| Tipo | Cantidad | Ejemplos |
|---|---|---|
| US Common Stocks | ~5,300 | AAPL, NVDA, MSFT |
| ADRs Internacionales | ~276+ | GGAL (Argentina), BABA (China), TM (Japón), PBR (Brasil), SAN (España), BP (UK) |
| ETFs & Fondos | ~91 | SPY, QQQ, VTI |
| Class A/B Shares | ~22 | BRK.A, BRK.B |
Ver detalle completo de mercados, ADRs por país y cómo buscar tickers en references/MARKETS_REFERENCE.md.
Macrotrends覆盖约6500只股票代码,在NYSE、NASDAQ和AMEX上市(包括ADRs)。
| 类型 | 数量 | 示例 |
|---|---|---|
| 美国普通股 | ~5300 | AAPL、NVDA、MSFT |
| 国际ADRs | ~276+ | GGAL(阿根廷)、BABA(中国)、TM(日本)、PBR(巴西)、SAN(西班牙)、BP(英国) |
| ETF及基金 | ~91 | SPY、QQQ、VTI |
| A/B类股 | ~22 | BRK.A、BRK.B |
完整的市场详情、各国ADRs及股票代码搜索方法请查看references/MARKETS_REFERENCE.md。
Rate Limits
速率限制
| Comportamiento | Recomendación |
|---|---|
| Requests seguidos sin delay | 429 Too Many Requests |
| Delay recomendado | 3 segundos entre requests |
| Tickers por ejecución | ~5-6 como máximo (para evitar bloqueo) |
| Backoff | Si recibís 429, esperá 30-60s |
| 行为 | 建议 |
|---|---|
| 无间隔连续请求 | 触发429 Too Many Requests错误 |
| 推荐间隔 | 请求间隔3秒 |
| 单次执行处理的股票代码数量 | 最多约5-6只(避免被封禁) |
| 退避策略 | 若收到429错误,等待30-60秒 |
Errores comunes
常见错误
| Error | Causa | Solución |
|---|---|---|
| Rate limit | Aumentar |
| No se pudo resolver el ticker | Usar |
| Endpoint no disponible | Verificar que el ticker existe en Macrotrends |
| Página cambió estructura | Reportar issue |
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 触发速率限制 | 增加 |
| 无法解析股票代码 | 手动使用 |
| 端点不可用 | 确认该股票代码在Macrotrends上存在 |
| 网页结构变更 | 提交issue反馈 |
Estructura del 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 principalskills/macrotrends/
├── SKILL.md # 本文件
├── references/
│ ├── STATEMENTS_REFERENCE.md # 字段参考
│ └── MARKETS_REFERENCE.md # 市场覆盖及ADRs参考
└── scripts/
└── fetch_financials.py # 主脚本