MarketScreener — Datos Financieros y Earnings Transcripts Globales
Scraper de MarketScreener (plataforma de S&P Capital IQ) que accede a datos gratuitos sin registro: earnings transcripts, cotizaciones, perfiles, financials históricos, valuación, consenso de analistas, noticias, insider trading y ratings.
URL base: https://www.marketscreener.com
País soportado: Global (20,000+ stocks, ADRs argentinos incluidos)
Requiere registro: ❌ No, todo es scraping directo
⚠️ Lo que MarketScreener ofrece GRATIS (sin registro)
| Funcionalidad |
Disponible Gratis |
Requiere Pago |
| Earnings Transcripts (contenido completo) |
— |
🔒 Premium |
| Earnings Transcripts (listado con fechas, quarters, URLs) |
✅ |
— |
| Cotizaciones (hasta 15 min retraso) |
✅ |
— |
| Perfil de empresa (descripción, sector, empleados, web) |
✅ |
— |
| Datos financieros (Income Statement, Balance Sheet, Cash Flow) |
✅ (años recientes) |
🔒 Más años |
| Valuación (PE, PB, EV/EBITDA, market cap, dividend yield) |
✅ |
— |
| Consenso de analistas (target price, recomendaciones, revisiones) |
✅ |
— |
| Ratings (Surperformance Score: Trader, Investor, Global) |
✅ |
— |
| Noticias (histórico completo) |
✅ |
— |
| Calendario (earnings, dividends, splits, AGM) |
✅ |
— |
| Insider Trading (transacciones de ejecutivos) |
✅ |
🔒 Más detalle |
| Accionistas (top shareholders) |
✅ |
🔒 Lista completa |
| Gobierno corporativo (board, management) |
✅ |
— |
| Gráficos (históricos, velas, indicadores técnicos) |
✅ |
— |
| Búsqueda de símbolos |
✅ |
— |
| Screener avanzado |
— |
🔒 Premium |
| Datos financieros históricos >3 años |
— |
🔒 Premium |
Cobertura
| Tipo |
Cobertura |
| Stocks US |
✅ Todas (AAPL, MSFT, etc.) |
| ADRs argentinos |
✅ GGAL, TGS, BMA, YPF, PAM, etc. |
| Stocks globales |
✅ Europa, Asia, Latinoamérica |
| ETFs |
✅ |
| Índices |
✅ |
| Bonos |
❌ No disponible |
| Forex / Crypto |
❌ No disponible |
Autenticación
No requiere API key ni registro. Todo el contenido es scraping directo de páginas públicas HTML.
Uso Rápido
from marketscreener_client import MarketScreenerClient
client = MarketScreenerClient()
# Último earnings transcript de GGAL
transcript = client.get_transcript("GGAL")
print(transcript["title"])
print(transcript["prepared_remarks"][:500])
# Cotización de AAPL
quote = client.get_quote("AAPL")
print(f"${quote['price']} ({quote['change_pct']}%)")
# Perfil de empresa
profile = client.get_profile("GGAL")
print(profile["name"], profile["industry"])
# Financials
fin = client.get_financials("AAPL", statement="income")
print(fin["2025"]["revenue"])
# Consenso de analistas
consensus = client.get_consensus("AAPL")
print(f"Target: ${consensus['target_mean']}, Recomendación: {consensus['rating']}")
Scripts Disponibles
| Script |
Descripción |
| marketscreener_client.py |
Cliente completo con todas las funcionalidades (transcripts, quotes, profile, financials, valuation, consensus, news, ratings, insider, calendar, search) |
| marketscreener_cli.py |
CLI rápida para consultas diarias |
Buenas Prácticas
- Rate limiting: usar 1 request por segundo como mínimo para evitar bloqueos
- User-Agent: siempre usar un User-Agent de navegador real
- Cachear: los datos de transcripts no cambian después de publicados, cachear localmente
- HTML Parsing: usar BeautifulSoup para parsear HTML, no regex
- IDs numéricos: cada empresa tiene un ID numérico único en MarketScreener (ej: AAPL=4849, GGAL=13491328)
- Errores 404: si no se encuentra una página, puede que la empresa no esté cubierta
1---2name: marketscreener3description: Scraper de MarketScreener (S&P Capital IQ): earnings transcripts, cotizaciones, perfiles empresa, financials, valuation, consenso analistas, noticias, insider trading, ratings. Sin API key.4license: MIT5---67# MarketScreener — Datos Financieros y Earnings Transcripts Globales89Scraper de **MarketScreener** (plataforma de S&P Capital IQ) que accede a **datos gratuitos sin registro**: earnings transcripts, cotizaciones, perfiles, financials históricos, valuación, consenso de analistas, noticias, insider trading y ratings.1011**URL base:** `https://www.marketscreener.com`12**País soportado:** Global (20,000+ stocks, ADRs argentinos incluidos)13**Requiere registro:** ❌ No, **todo es scraping directo**1415---1617## ⚠️ Lo que MarketScreener ofrece GRATIS (sin registro)1819| Funcionalidad | Disponible Gratis | Requiere Pago |20|:---|:---:|:---:|21| **Earnings Transcripts** (contenido completo) | — | 🔒 Premium |22| **Earnings Transcripts** (listado con fechas, quarters, URLs) | ✅ | — |23| **Cotizaciones** (hasta 15 min retraso) | ✅ | — |24| **Perfil de empresa** (descripción, sector, empleados, web) | ✅ | — |25| **Datos financieros** (Income Statement, Balance Sheet, Cash Flow) | ✅ (años recientes) | 🔒 Más años |26| **Valuación** (PE, PB, EV/EBITDA, market cap, dividend yield) | ✅ | — |27| **Consenso de analistas** (target price, recomendaciones, revisiones) | ✅ | — |28| **Ratings** (Surperformance Score: Trader, Investor, Global) | ✅ | — |29| **Noticias** (histórico completo) | ✅ | — |30| **Calendario** (earnings, dividends, splits, AGM) | ✅ | — |31| **Insider Trading** (transacciones de ejecutivos) | ✅ | 🔒 Más detalle |32| **Accionistas** (top shareholders) | ✅ | 🔒 Lista completa |33| **Gobierno corporativo** (board, management) | ✅ | — |34| **Gráficos** (históricos, velas, indicadores técnicos) | ✅ | — |35| **Búsqueda de símbolos** | ✅ | — |36| **Screener avanzado** | — | 🔒 Premium |37| **Datos financieros históricos >3 años** | — | 🔒 Premium |3839---4041## Cobertura4243| Tipo | Cobertura |44|------|-----------|45| **Stocks US** | ✅ Todas (AAPL, MSFT, etc.) |46| **ADRs argentinos** | ✅ GGAL, TGS, BMA, YPF, PAM, etc. |47| **Stocks globales** | ✅ Europa, Asia, Latinoamérica |48| **ETFs** | ✅ |49| **Índices** | ✅ |50| **Bonos** | ❌ No disponible |51| **Forex / Crypto** | ❌ No disponible |5253---5455## Autenticación5657**No requiere API key ni registro.** Todo el contenido es scraping directo de páginas públicas HTML.5859---6061## Uso Rápido6263```python64from marketscreener_client import MarketScreenerClient6566client = MarketScreenerClient()6768# Último earnings transcript de GGAL69transcript = client.get_transcript("GGAL")70print(transcript["title"])71print(transcript["prepared_remarks"][:500])7273# Cotización de AAPL74quote = client.get_quote("AAPL")75print(f"${quote['price']} ({quote['change_pct']}%)")7677# Perfil de empresa78profile = client.get_profile("GGAL")79print(profile["name"], profile["industry"])8081# Financials82fin = client.get_financials("AAPL", statement="income")83print(fin["2025"]["revenue"])8485# Consenso de analistas86consensus = client.get_consensus("AAPL")87print(f"Target: ${consensus['target_mean']}, Recomendación: {consensus['rating']}")88```8990---9192## Scripts Disponibles9394| Script | Descripción |95|--------|-------------|96| **[marketscreener_client.py](./scripts/marketscreener_client.py)** | Cliente completo con todas las funcionalidades (transcripts, quotes, profile, financials, valuation, consensus, news, ratings, insider, calendar, search) |97| **[marketscreener_cli.py](./scripts/marketscreener_cli.py)** | CLI rápida para consultas diarias |9899---100101## Buenas Prácticas1021031. **Rate limiting**: usar 1 request por segundo como mínimo para evitar bloqueos1042. **User-Agent**: siempre usar un User-Agent de navegador real1053. **Cachear**: los datos de transcripts no cambian después de publicados, cachear localmente1064. **HTML Parsing**: usar BeautifulSoup para parsear HTML, no regex1075. **IDs numéricos**: cada empresa tiene un ID numérico único en MarketScreener (ej: AAPL=4849, GGAL=13491328)1086. **Errores 404**: si no se encuentra una página, puede que la empresa no esté cubierta