Google-Play-Store-Daten mit Python scrapen

Zwei Wege: das Open-Source-Paket google-play-scraper für kleine Aufgaben, eine API für alles, was täglich laufen muss.

Weg 1: eine Scraping-Bibliothek

Das Open-Source-Paket google-play-scraper lädt eine Store-Seite und parst sie:

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"])

Für ein Notebook ist das großartig. In der Produktion begegnen Ihnen drei Probleme: Ratenlimits (Google antwortet mit 429 und Captchas, sobald viele Anfragen von einer IP kommen), Markup-Änderungen (Parser brechen ohne Vorwarnung) und Gedächtnis (wird eine App entfernt, ist die Seite weg – und ihre Daten mit ihr).

Weg 2: einen bereits gescrapten Index abfragen

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"])

Dieselben Felder, keine Proxys. Entfernte Apps antworten weiterhin, mit gesetztem status.removed.

Eine ganze Kategorie scrapen

Statt Kategorieseiten zu crawlen, filtern Sie:

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"])

Durchlaufen Sie page bis r["pages"]. Jede Seite mit bis zu 100 Apps kostet 2 Credits.

Was wählen?