macrotrends

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Macrotrends — 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
requests
+
BeautifulSoup
).

一款针对Macrotrends的数据采集工具,可提取历史财务数据:income statements(利润表)balance sheets(资产负债表)cash flow statements(现金流量表)financial ratios(财务比率)以及employee count(员工数量),覆盖美国市场(NYSE、NASDAQ、AMEX)约6500只股票代码,包括来自30多个国家的国际ADRs,数据年限可达15年以上。
数据以JSON格式嵌入网页中(无需API密钥,仅需
requests
+
BeautifulSoup
工具)。

⚠️ 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 beautifulsoup4

bash
pip install requests beautifulsoup4

Scripts

脚本

ScriptDescripción
fetch_financials.pyScript principal: statements, ratios, employees

脚本描述
fetch_financials.py主脚本:获取财务报表、比率及员工数据

Uso rápido

快速使用

bash
undefined
bash
undefined

Income 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

可用端点

FlagDataFrecuenciasPeríodos
--income
Income StatementAnual, Trimestral~15 años / ~60 quarters
--balance
Balance SheetAnual, Trimestral~15 años / ~60 quarters
--cashflow
Cash FlowSolo anual~15 años
--ratios
Financial Ratios (20 ratios)Anual, Trimestral~15 años / ~60 quarters
--employees
Employee CountAnual~15 años
--all
Todos los anterioresSegún
--quarterly
-
参数数据类型频率周期
--income
Income Statement年度、季度~15年 / ~60个季度
--balance
Balance Sheet年度、季度~15年 / ~60个季度
--cashflow
Cash Flow仅年度~15年
--ratios
Financial Ratios(20种比率)年度、季度~15年 / ~60个季度
--employees
Employee Count年度~15年
--all
以上全部数据取决于
--quarterly
参数
-

Flags adicionales

额外参数

FlagDescripción
--quarterly
Usa frecuencia trimestral (donde esté disponible)
--output
Archivo JSON de salida (default: stdout)
--slug
Slug manual (si el search no funciona)
--delay
Delay entre requests (default: 3.0s)
--quiet
Modo silencioso

参数描述
--quarterly
使用季度频率(在可用情况下)
--output
输出JSON文件(默认:标准输出)
--slug
手动指定slug(当自动搜索失效时)
--delay
请求间隔时间(默认:3.0秒)
--quiet
静默模式

Resolución ticker → slug

股票代码 → slug 解析

Macrotrends usa URLs con el formato
/stocks/charts/{TICKER}/{SLUG}/financial-statements
.
El slug se resuelve automáticamente via el search endpoint interno. Ejemplos:
TickerSlug
AAPL
apple
NVDA
nvidia
MSFT
microsoft
GGAL
grupo-financiero-galicia-sa
TSLA
tesla
Si el search falla, se puede pasar el slug manualmente:
bash
python scripts/fetch_financials.py --ticker GGAL --slug grupo-financiero-galicia-sa --all

Macrotrends使用如下格式的URL:
/stocks/charts/{TICKER}/{SLUG}/financial-statements
slug会通过内部搜索端点自动解析。示例:
股票代码Slug
AAPL
apple
NVDA
nvidia
MSFT
microsoft
GGAL
grupo-financiero-galicia-sa
TSLA
tesla
如果自动搜索失败,可手动传入slug:
bash
python scripts/fetch_financials.py --ticker GGAL --slug grupo-financiero-galicia-sa --all

Datos 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).
TipoCantidadEjemplos
US Common Stocks~5,300AAPL, NVDA, MSFT
ADRs Internacionales~276+GGAL (Argentina), BABA (China), TM (Japón), PBR (Brasil), SAN (España), BP (UK)
ETFs & Fondos~91SPY, QQQ, VTI
Class A/B Shares~22BRK.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)。
类型数量示例
美国普通股~5300AAPL、NVDA、MSFT
国际ADRs~276+GGAL(阿根廷)、BABA(中国)、TM(日本)、PBR(巴西)、SAN(西班牙)、BP(英国)
ETF及基金~91SPY、QQQ、VTI
A/B类股~22BRK.A、BRK.B
完整的市场详情、各国ADRs及股票代码搜索方法请查看references/MARKETS_REFERENCE.md

Rate Limits

速率限制

ComportamientoRecomendación
Requests seguidos sin delay429 Too Many Requests
Delay recomendado3 segundos entre requests
Tickers por ejecución~5-6 como máximo (para evitar bloqueo)
BackoffSi recibís 429, esperá 30-60s

行为建议
无间隔连续请求触发429 Too Many Requests错误
推荐间隔请求间隔3秒
单次执行处理的股票代码数量最多约5-6只(避免被封禁)
退避策略若收到429错误,等待30-60秒

Errores comunes

常见错误

ErrorCausaSolución
429 Too Many Requests
Rate limitAumentar
--delay
o esperar
slug not found
No se pudo resolver el tickerUsar
--slug
manualmente
No data found for X
Endpoint no disponibleVerificar que el ticker existe en Macrotrends
originalData not found
Página cambió estructuraReportar issue

错误原因解决方案
429 Too Many Requests
触发速率限制增加
--delay
参数值或等待一段时间
slug not found
无法解析股票代码手动使用
--slug
参数
No data found for X
端点不可用确认该股票代码在Macrotrends上存在
originalData not found
网页结构变更提交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 principal
skills/macrotrends/
├── SKILL.md                              # 本文件
├── references/
│   ├── STATEMENTS_REFERENCE.md           # 字段参考
│   └── MARKETS_REFERENCE.md             # 市场覆盖及ADRs参考
└── scripts/
    └── fetch_financials.py               # 主脚本