Tony Wang6 min de lecturaCómo scrapear Google Finance en 2026 (API y Python)
Scrapea Google Finance en 2026 — quotes, financials y movers, earnings y category views de mercado — DIY, no-code o API estructurada.
La forma más rápida de scrapear Google Finance en 2026 es llamar a una API estructurada que devuelve JSON normalizado — quotes, charts, financials, datos de la company y movers y category views a nivel de mercado — en lugar de parsear tú mismo las páginas de finance de Google, que se renderizan en el cliente. Google cerró su propia API de Finance en 2012, así que no hay un endpoint propio al que recurrir, y el único vestigio oficial es una fórmula de spreadsheet con retraso. Esta guía cubre los tres enfoques, qué devuelve cada uno, dónde se rompe cada uno, y la realidad legal por adelantado.
¿Por qué scrapear Google Finance?
Google Finance agrupa quotes, news y contexto de mercado en un solo lugar, lo que lo hace útil para:
- Monitoreo a nivel de mercado — rastrear los movers del día, symbols en tendencia e índices curados sin consultar un ticker a la vez.
- Seguimiento del earnings calendar — extraer earnings próximos y recientes de varias companies en un solo feed.
- Dashboards por sector y category — extraer news y listas de stocks limitadas a una category de Google Finance (tecnología, energía, etcétera) en lugar de todo el mercado.
- Enriquecimiento de quote y fundamentals — adjuntar precio, perfil de la company y datos de los estados financieros a una watchlist o herramienta de research.
- Research de news y sentimiento — combinar el feed de news y artículos de analistas de un symbol con la demanda de búsqueda o la conversación en retail para ver qué la está impulsando.
¿Es legal scrapear Google Finance?
Opción 1: DIY en Python (y por qué se rompe)
Las páginas de Google Finance son una app renderizada en el cliente, no HTML estático, así que un scraper DIY tiene que manejar un navegador headless y parsear lo que sea que este renderice:
from bs4 import BeautifulSoup
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.google.com/finance/quote/AAPL:NASDAQ")
page.wait_for_selector("[data-last-price]") # price loads in async
soup = BeautifulSoup(page.content(), "html.parser")
Funciona en la demo y luego se rompe:
- No hay API oficial desde 2012. Google cerró las APIs de Finance Portfolio y Gadgets en octubre de 2012 y nunca lanzó un reemplazo público, así que no hay un endpoint, key o SLA documentado al cual recurrir.
- Renderizado con JS, no scrapeable con un cliente HTTP simple. Los precios y los datos del chart cargan de forma asíncrona en una app del lado del cliente, así que
requestssolo devuelve una cáscara vacía — necesitas un navegador real. - Clases CSS sin etiquetar y versionadas. No hay una estrategia estable de atributos
data-*en todas las secciones; los nombres de clase cambian con cada deploy del frontend, rompiendo selectores sin aviso. - Anti-bot a la escala de Google. El tráfico headless desde IPs de datacenter se topa rápido con CAPTCHAs o bloqueos, y correr un navegador por symbol es lento y caro de escalar.
Opción 2: Herramientas no-code
Lo más parecido a una API que ofrece Google es la función GOOGLEFINANCE() en Google Sheets — trae un precio en vivo a una celda con =GOOGLEFINANCE("AAPL"), o un rango histórico con fecha de inicio/fin. Es genuinamente útil para un spreadsheet puntual, pero los datos tienen retraso, no hay forma programática de llamarla fuera de Sheets, y no expone nada para movers, earnings calendars o category news. Cualquier cosa que necesite correr en un schedule, unirse con otros datos o alcanzar vistas a nivel de mercado tiene que buscar otra vía.
Opción 3: Una API estructurada de Google Finance
Para un workflow repetible y con permisos bien definidos, una API de scraping de Google Finance devuelve JSON normalizado sin necesidad de correr un navegador. Trae el perfil de la company de un quote:
curl "https://api.crawlora.net/api/v1/google-finance/company/AAPL:NASDAQ" \
-H "x-api-key: $CRAWLORA_API_KEY"
Quote, chart, company y financials en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/google-finance"
quote = requests.get(f"{base}/quote/AAPL:NASDAQ", headers=h).json()["data"]
chart = requests.get(f"{base}/chart/AAPL:NASDAQ", headers=h,
params={"window": "1y"}).json()["data"]
company = requests.get(f"{base}/company/AAPL:NASDAQ", headers=h).json()["data"]
financials = requests.get(f"{base}/financials/AAPL:NASDAQ", headers=h).json()["data"]
Los datos de la company son JSON normalizado que puedes guardar directamente (response real, revisa los docs para el schema completo):
{
"code": 200,
"msg": "OK",
"data": {
"description": "Apple Inc. designs, manufactures, and markets smartphones, personal computers, tablets, wearables, and accessories.",
"ceo": "Tim Cook",
"employees": 166000,
"headquarters": "Cupertino, CA, US",
"sector": "Technology",
"market_cap": 4010000000000,
"pe_ratio": 34.56,
"fifty_two_week_high": 288.61,
"fifty_two_week_low": 169.21
}
}
Más allá de un solo symbol, la familia markets/* alcanza vistas a nivel de mercado — los movers del día, un earnings calendar o una lista de stocks limitada por category — sin tocar quote/chart/company en absoluto:
movers = requests.get(f"{base}/markets/movers", headers=h,
params={"count": 20}).json()["data"]
earnings = requests.get(f"{base}/markets/earnings", headers=h).json()["data"]
tech_stocks = requests.get(f"{base}/markets/categories/18/stocks", headers=h).json()["data"]
Movers tiene la misma forma normalizada, ticker/exchange/name por fila:
{
"code": 200,
"msg": "OK",
"data": {
"count": 20,
"items": [
{ "ticker": "AAPL", "exchange": "NASDAQ", "name": "Apple Inc" }
]
}
}
Resuelve el nombre de una company a un symbol con /google-finance/search?q= o /google-finance/context?q=, que devuelven candidatos de ticker/exchange/name. Guarda una fila por symbol (o por market snapshot) y vuelve a ejecutar según un schedule.
Qué puedes recolectar
Por symbol (quote como AAPL:NASDAQ o BTC-USD): la página completa del quote (about, investment, key stats, news, tickers relacionados), puntos históricos del chart con el previous close, perfil de la company (CEO, empleados, headquarters, sector, market cap, P/E, rango de 52 semanas, rango del día, volumen), financials anuales y trimestrales (revenue, net income), classification categories, valores relacionados, y artículos de news y analistas. A nivel de mercado: índices curados, movers, rankings por top-metric, symbols en tendencia, symbols destacados, un earnings calendar, un artículo destacado con un instrument snapshot enlazado, y news y listas de stocks limitadas por category. Solo datos públicos.
Limitaciones y desafíos comunes
- No hay API oficial a la cual recurrir. Google cerró su API de Finance en 2012 sin un reemplazo público — cualquier enfoque DIY implica manejar un navegador contra una página que Google puede rediseñar cuando quiera.
- Las páginas renderizadas con JS necesitan un navegador real. Los requests HTTP simples no ven los datos de precio ni del chart; el scraping DIY implica el overhead y el costo de Chrome headless por symbol.
- Los datos son informativos, no asesoría, y no son datos de trading en tiempo real. Trata los valores como inputs, no como recomendaciones, y confirma cualquier cosa relevante contra una fuente autoritativa.
- La redistribución puede requerir una licencia. Recolectar datos públicos de quote y de mercado para research o dashboards internos es una cosa; revenderlos o rehostearlos comercialmente puede requerir una licencia — revisa los términos de Google.
- Los ids de category y metric no son autoexplicativos. Los endpoints
markets/categories/*ymarkets/topreciben ids numéricos de category y metric en lugar de nombres — confirma los ids que necesitas contra los docs antes de conectar un pipeline.
Dónde se usa esto
- Dashboards de monitoreo de mercado — movers, symbols en tendencia e índices curados, actualizados según un schedule.
- Feeds de earnings calendar — earnings próximos y recientes de una watchlist de companies.
- Research por sector — news y listas de stocks limitadas por category en lugar de un ticker a la vez.
- Enriquecimiento de fundamentals — perfil de la company y datos de los estados financieros adjuntos a una herramienta de research o CRM.
Fuentes
Empieza a recolectar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o revisa si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de quote, company y movers en el Playground, revisa el schema en los API docs, y consulta el pricing. Google Finance cubre el mercado de forma amplia — movers, un earnings calendar, índices curados, category views — mientras que Yahoo Finance profundiza más en los fundamentals, options y datos de analistas de un solo ticker, así que combina ambos cuando un workflow necesite amplitud y profundidad a la vez. Para la clase de activo que ninguno de los dos cubre, how to scrape CoinGecko maneja precios de crypto, market caps y datos de exchanges. Y para lo que una company divulgó oficialmente, en vez de lo que el mercado pagó por ella, how to scrape SEC EDGAR cubre el lado de los filings de la misma imagen. Consulta el caso de uso más amplio de finance & market data para ver cómo encajan estas fuentes entre sí. Consulta también how to choose a web scraping API e is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Hay una API oficial de Google Finance?
No. Google cerró sus APIs de Finance Portfolio y Gadgets en octubre de 2012 y nunca lanzó un reemplazo público. El único vestigio oficial es la función GOOGLEFINANCE() con retraso en Google Sheets.
¿Cómo direcciono un symbol de stock o crypto en Google Finance?
Usa el identificador de quote calificado por exchange que Google Finance mismo utiliza, como AAPL:NASDAQ para una acción o BTC-USD para crypto, en los endpoints quote, chart, company y financials.
¿Es legal scrapear Google Finance?
Es una zona gris legal, no abiertamente ilegal, pero los Terms of Service de Google prohíben el acceso automatizado sin permiso. Trátalo como datos de referencia públicos, respeta los rate limits y no revendas ni rehostees el feed propio de Google. Esto no es asesoría legal.
¿En qué se diferencia esta guía de la guía how-to-scrape-yahoo-finance?
La guía de Yahoo Finance se enfoca en fundamentals profundos por ticker, options y datos de analistas vía yfinance y una API estructurada. El diferenciador de esta guía es la familia markets/* de Google Finance — movers y news por category, un earnings calendar e índices curados — vistas a nivel de mercado que la guía de Yahoo Finance no cubre.
¿Puedo usar la función GOOGLEFINANCE() de Google Sheets en lugar de scrapear?
Para un spreadsheet puntual, sí — trae un precio en vivo con retraso o un rango histórico. No tiene acceso programático fuera de Sheets ni cobertura para movers, earnings calendars o category views, así que no reemplaza una API para un pipeline.
¿Qué datos a nivel de mercado puedo obtener más allá de un solo symbol?
Índices curados, los movers del día, rankings por top-metric, symbols en tendencia y destacados, un earnings calendar, un artículo destacado con un instrument snapshot enlazado, y news y listas de stocks limitadas por category vía los endpoints markets/*.
¿Los datos de Google Finance son en tiempo real?
No — trátalos como informativos y posiblemente con retraso, no como un feed de trading en tiempo real con licencia, y confirma cualquier cosa relevante contra una fuente autoritativa antes de actuar en consecuencia.