Comment scraper les données du Google Play Store en Python
Deux voies : le paquet open source google-play-scraper pour les petites tâches, une API pour tout ce qui doit tourner chaque jour.
Voie 1 : une bibliothèque de scraping
Le paquet open source google-play-scraper récupère une page du Store et l'analyse :
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"])Parfait pour un notebook. En production, vous rencontrerez trois problèmes : les limites de débit (Google répond par des 429 et des captchas dès que vous envoyez beaucoup de requêtes depuis une IP), les changements de balisage (les parseurs cassent sans prévenir) et la mémoire (quand une app est retirée, la page disparaît, et ses données avec).
Voie 2 : interroger un index déjà scrapé
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"])Les mêmes champs, sans proxy. Les apps retirées répondent toujours, avec status.removed renseigné.
Scraper une catégorie entière
Au lieu de parcourir les pages de catégorie, filtrez :
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"])Bouclez sur page jusqu'à r["pages"]. Chaque page de 100 apps maximum coûte 2 crédits.
Lequel choisir
- Analyse ponctuelle de quelques centaines d'apps : la bibliothèque suffit.
- Une tâche quotidienne, des milliers d'apps ou l'historique des apps retirées : utilisez l'API.