Cómo extraer datos de Google Play Store con Python
Dos caminos: el paquete de código abierto google-play-scraper para trabajos pequeños y una API para todo lo que deba ejecutarse a diario.
Camino 1: una biblioteca de scraping
El paquete de código abierto google-play-scraper descarga una página de la tienda y la analiza:
pip install google-play-scraper
from google_play_scraper import app
d = app("com.whatsapp", lang="en", country="us")
print(d["title"], d["installs"], d["score"])Es estupendo para un notebook. En producción te encontrarás con tres problemas: límites de peticiones (Google responde con 429 y captchas en cuanto envías muchas peticiones desde una IP), cambios de marcado (los parsers se rompen sin aviso) y memoria (cuando una app se retira, la página desaparece y sus datos con ella).
Camino 2: consultar un índice ya extraído
import os, requests
r = requests.get("https://apiplay.cc/api/v1/app",
params={"id": "com.whatsapp"},
headers={"X-API-Key": os.environ["API_KEY"]}, timeout=30)
app = r.json()["app"]
print(app["title"], app["installs"]["label"], app["rating"]["score"])Los mismos campos, sin proxies. Las apps retiradas siguen respondiendo, con status.removed activado.
Extraer una categoría entera
En lugar de rastrear las páginas de categoría, filtra:
params = {"category": "GAME_PUZZLE", "min_installs": 100000, "per": 100, "page": 1}
r = requests.get("https://apiplay.cc/api/v1/search", params=params, headers=H).json()
for a in r["results"]:
print(a["id"], a["installs"]["min"], a["rating"]["score"])Recorre page hasta r["pages"]. Cada página de hasta 100 apps cuesta 2 créditos.
Cuál elegir
- Análisis puntual de unos cientos de apps: la biblioteca basta.
- Una tarea diaria, miles de apps o el historial de apps retiradas: usa la API.