Tony Wang5 min de lecturaCómo hacer scraping de Steam en 2026 (reseñas, gráficos y jugadores)
Scraping de Steam en 2026: detalles de tienda, reseñas, jugadores y gráficos — hazlo tú mismo con tres APIs o usa una API estructurada.
¿Por qué hacer scraping de Steam?
Los datos de Steam son la capa base para la investigación y los productos de PC gaming:
- Investigación de mercado y competencia — sigue las puntuaciones de reseñas, precios y etiquetas de un género o del catálogo de un competidor.
- Rankings en vivo y detección de tendencias — monitorea los jugadores concurrentes y los gráficos de más jugados y más vendidos a medida que cambian.
- Análisis de reseñas y sentimiento — lee lo que dicen realmente los jugadores y cómo cambia el sentimiento tras un parche o una oferta.
- Estimaciones de propiedad y tamaño de mercado — los conteos muestreados de propietarios de SteamSpy son lo más cercano que existe a un número público de "cuánta gente posee esto".
¿Es legal hacer scraping de Steam?
Opción 1: Hacerlo tú mismo con tres fuentes de datos separadas
Steam no tiene una API unificada — terminas integrando tres:
import requests
# 1. Detalles de la tienda — no documentado pero estable, indexado por appid
app = requests.get("https://store.steampowered.com/api/appdetails", params={"appids": 570}).json()
# 2. Reseñas de la comunidad — otro host, otra forma de respuesta, paginación por cursor
reviews = requests.get("https://store.steampowered.com/appreviews/570", params={
"json": 1, "filter": "recent", "language": "english", "cursor": "*",
}).json()
# 3. SteamSpy — un tercer host completamente distinto, para estimaciones de propietarios
spy = requests.get("https://steamspy.com/api.php", params={"request": "appdetails", "appid": 570}).json()
El costo real está en tener tres clientes para un solo dataset, no en ninguna defensa anti-bot:
- No hay un esquema único.
appdetailsdevuelve precios/géneros/plataformas anidados bajo un wrappersuccess/data;appreviewsdevuelve una lista plana con uncursorque debes ir pasando de una llamada a otra; SteamSpy devuelve otra forma distinta más, con campos comoownerscomo un rango de texto ("1,000,000 .. 2,000,000"), no un número. Normalizar las tres en un solo registro es la mayor parte del trabajo. - SteamSpy es una estimación muestreada y no oficial. Infiere la propiedad a partir de una muestra pública de perfiles de Steam, así que los conteos para títulos de nicho o recién lanzados pueden estar desactualizados, tener huecos o faltar por completo — construye para
null, no para un número garantizado. - Las reseñas se paginan con un cursor opaco, no con número de página. Debes conservar el string
cursorentre llamadas; no existe un atajo tipo "dame la página 5", así que retomar una extracción parcial implica guardar tu último cursor. - Los jugadores en vivo y los gráficos son de nuevo endpoints separados (
ISteamUserStats/GetNumberOfCurrentPlayerspara una app; las páginas públicas de gráficos para los rankings), cada uno con sus propias particularidades y ninguno documentado como un contrato público estable.
Opción 2: Herramientas sin código
Los scrapers genéricos pueden extraer páginas individuales de la tienda o de reseñas, pero los datos de Steam son inherentemente multifuente — una herramienta sin código diseñada para una sola forma de página no te ayuda a unir detalles de la tienda, reseñas, jugadores en vivo y estimaciones de SteamSpy en un solo registro, que es la mayor parte del trabajo real.
Opción 3: Una API estructurada de Steam
Una API de scraping de Steam normaliza las tres fuentes —más los gráficos oficiales— detrás de una sola clave, así que los detalles de la app, las reseñas y los rankings comparten un cliente y una forma de respuesta.
Busca en la tienda por título:
curl "https://api.crawlora.net/api/v1/steam/search?term=hollow%20knight" \
-H "x-api-key: $CRAWLORA_API_KEY"
Obtén los detalles de la tienda y las reseñas de una app en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/steam"
app = requests.get(f"{base}/app", headers=h, params={"appid": 570}).json()["data"]
reviews = requests.get(f"{base}/reviews", headers=h, params={
"appid": 570, "filter": "recent", "language": "english", "num_per_page": 50,
}).json()["data"]
players = requests.get(f"{base}/players", headers=h, params={"appid": 570}).json()["data"]
Obtén los gráficos en vivo con los movimientos y rankings:
concurrent = requests.get(f"{base}/charts/concurrent", headers=h).json()["data"]
most_played = requests.get(f"{base}/charts/most-played", headers=h).json()["data"]
reviews acepta filter (recent/updated/all), review_type, purchase_type y cursor para la paginación — el endpoint absorbe el ida y vuelta del cursor, así que puedes paginarlo como cualquier otra lista. Tanto charts/concurrent como charts/most-played aceptan un flag opcional enrich para adjuntar metadatos de la tienda (nombre, precio, géneros) a cada fila del ranking en vez de un simple appid, así que no necesitas una segunda llamada a app por cada fila.
Qué puedes recopilar
Detalles de la tienda (nombre, precio, géneros, plataformas, fecha de lanzamiento, resumen de reseñas), reseñas individuales (autor, tiempo de juego, recomendado/no recomendado, texto, marca de tiempo), conteo actual de jugadores concurrentes, gráficos en vivo (concurrentes, más jugados, más vendidos por ingresos), publicaciones de noticias y etiquetas de la comunidad — un registro enriquecido por cada app, reseña o fila de gráfico, identificado por appid.
Limitaciones y desafíos comunes
- No hay un esquema oficial único. La Store API, las reseñas y SteamSpy tienen cada una su propia forma de respuesta y ninguna cuenta con documentación versionada de forma oficial — espera tener que normalizar, no solo analizar.
- SteamSpy estima, no mide. Trata los conteos de propietarios como señales orientativas del tamaño del mercado, no como cifras exactas de ventas, especialmente en títulos de nicho o muy recientes.
- Las reseñas se paginan por cursor. Conserva el cursor para retomar una extracción parcial; no hay atajo por número de página.
- Los gráficos se mueven rápido. Los rankings de jugadores concurrentes y más jugados cambian continuamente — toma capturas programadas si necesitas una serie temporal, no una sola extracción.
Dónde se usa esto
- Inteligencia de apps — sigue el mercado de apps, incluido el PC gaming, en cuanto a valoraciones, precios y rankings. Consulta la página de producto de inteligencia de apps.
- Investigación de competencia y mercado — compara puntuaciones de reseñas y número de jugadores frente a títulos comparables. Consulta seguimiento de competidores.
- El dataset de Steam Games y el dataset de Steam Charts — los mismos datos ya recopilados y listos para consultar sin ejecutar un crawl.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: ejecuta cualquier URL pública con el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de app y reseñas en el Playground, revisa el esquema en la documentación de la API y consulta los precios. Steam es una tienda dentro de un mercado que abarca tres: cómo hacer scraping de Google Play cubre el catálogo, listados y valoraciones de Android, y cómo hacer scraping de reseñas de App Store cubre el flujo de reseñas de iOS — el mismo título suele estar en las tres, y las puntuaciones rara vez coinciden. En el lado de consolas del mismo catálogo de juegos, cómo hacer scraping de PlayStation Store cubre precios, ediciones y ofertas de esos mismos títulos. Para el kit de herramientas más amplio, cómo elegir una API de web scraping, y is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Es legal hacer scraping de Steam?
La Store API y las reseñas son endpoints públicos y sin autenticación, sin muro de login que evadir, y Valve no exige una API key para usarlos. Hechos como el precio o la puntuación de reseñas no son objeto de copyright, pero las descripciones de la tienda y las capturas de pantalla sí pueden serlo, así que no las republiques tal cual. Respeta los límites de tasa.
¿Existe una única API oficial y unificada para Steam?
No. Los datos están repartidos entre la Store API (detalles de la app), la Reviews API de la comunidad y la no oficial SteamSpy (estimaciones de propietarios), cada una con su propia forma de respuesta y su propio host. Los jugadores en vivo y los gráficos son también endpoints separados.
¿Qué tan precisos son los conteos de propietarios de SteamSpy?
Son estimaciones a partir de una API pública muestreada, no cifras exactas de ventas. En títulos de nicho o recién lanzados los números pueden quedar desfasados o faltar por completo, así que trátalos como un indicador orientativo.
¿Cómo se paginan las reseñas de Steam?
Se paginan mediante un string de cursor opaco, no por número de página. Debes conservar el cursor entre llamadas para obtener la siguiente página.
¿Qué puedo obtener de Steam sin usar un navegador?
Los detalles de la tienda, las reseñas, el número actual de jugadores y los gráficos oficiales son todos endpoints HTTP JSON normales; ninguno requiere un navegador sin interfaz ni renderizado de JavaScript.