Abrufen von Daten aus dem Android Play Store [geschlossen]

83

Ich habe einige Apps und Websites gesehen, die Daten aus dem Android Play Store verwenden. ZB Apps oder Websites mit einem Top-Apps-Ranking usw. Aber wie können Sie die Daten erhalten? Von wo kann ich es analysieren?

Ahmad
quelle
Es gibt offene Fragen und
Antworten
@Umair nein danke. Diese Frage ist mehr als 5 Jahre alt.
Ahmad

Antworten:

47

Es gibt eine inoffizielle Open-Source-API für den Android Market, mit der Sie möglicherweise versuchen, die benötigten Informationen abzurufen. Hoffe das hilft.

lenik
quelle
Ich gehe davon aus, dass Sie diese API bereits verwendet haben. Könnten Sie mir bei einem Problem helfen? Hier ist meine Frage bezüglich der API: stackoverflow.com/questions/10281232/…
Ahmad
@lenik wie kann ich diesen APi mit C # verwenden?
Elad Benda
Hallo, konnten Sie mit der obigen API das bekommen, was Sie brauchten? Ich suche nach einer Möglichkeit, auch auf Musik zu
verweisen
Dies ist androidspezifisch, da der größte Teil der Nutzung mit dem Web zusammenhängt, wie z. B. PHP. Das einzige, was es mit PHP kratzen kann, ist die Geräte-ID und ein Screenshot, der nichts im Vergleich zu anderen APIs ist.
Hunain Usman
Wie man diese API benutzt, um Spieldetails von Google Play mit PHP zu erhalten. Ich wusste nicht, wie ich anfangen soll? Hier ist meine Frage. Bitte antworten Sie mir ... stackoverflow.com/questions/23622898/…
20

Ich habe ein kleines Node.js-Modul codiert, um die App zu kratzen und Daten von Google Play aufzulisten : google-play-scraper

var gplay = require('google-play-scrapper');

gplay.List({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    num: 2
  }).then(console.log);

Ergebnisse:

 [ { url: 'https://play.google.com/store/apps/details?id=com.playappking.busrush',
    appId: 'com.playappking.busrush',
    title: 'Bus Rush',
    developer: 'Play App King',
    icon: 'https://lh3.googleusercontent.com/R6hmyJ6ls6wskk5hHFoW02yEyJpSG36il4JBkVf-Aojb1q4ZJ9nrGsx6lwsRtnTqfA=w340',
    score: 3.9,
    price: '0',
    free: false },
  { url: 'https://play.google.com/store/apps/details?id=com.yodo1.crossyroad',
    appId: 'com.yodo1.crossyroad',
    title: 'Crossy Road',
    developer: 'Yodo1 Games',
    icon: 'https://lh3.googleusercontent.com/doHqbSPNekdR694M-4rAu9P2B3V6ivff76fqItheZGJiN4NBw6TrxhIxCEpqgO3jKVg=w340',
    score: 4.5,
    price: '0',
    free: false } ]
Facundo Olano
quelle
19
Ich denke schon, das sind alles öffentlich verfügbare Daten. Es wäre lustig, wenn Google sagt: "Hey, crawlen Sie nicht meine Website?".
Facundo Olano
Wie kann man dies mit PHP verwenden, um es in eine Website zu implementieren?
Ama Rullz Amarullzz
Dies ist ein Node.js-Paket. Sie können eine einfache Knoten-App erstellen, um diese in einer Datenbank abzulegen, oder Sie können sie mit browserify bündeln, um sie über den Browser auszuführen. Sie können diesen von mir geschriebenen Wrapper auch verwenden , wenn Sie ihn als RESTful-API verfügbar machen möchten.
Facundo Olano
1
Danke Mann, ich habe nach einem solchen Werkzeug gesucht. Ich wollte eigentlich die Bewertungen einer Drittanbieter-App erhalten, deren Zugriff auf die Play Developer Console ich nicht habe, und die API von Google fragt nach dem Zugriffstoken. Ich würde gerne die zugrunde liegende Architektur des Knotenmoduls kennen. Wie wird die Bewertung aus dem Play Store abgerufen?
Prateek Jain
1
Ich habe auch ein vielversprechendes Projekt auf github github.com/s101d1/CSPlayStoreScraper gefunden .
Smedasn
20

Haftungsausschluss: Ich komme aus 42matters, der diese Daten bereits auf https://42matters.com/api bereitstellt. Sie können sie gerne überprüfen oder uns eine Nachricht senden .

Wie Lenik erwähnte, gibt es Open-Source-Bibliotheken, die bereits beim Abrufen einiger Daten von GPlay helfen. Wenn Sie selbst eine erstellen möchten, können Sie versuchen, die Google Play App-Seite zu analysieren. Beachten Sie jedoch Folgendes:

  • Stellen Sie sicher, dass die URL, die Sie analysieren möchten, in robots.txt nicht blockiert ist - z. B. https://play.google.com/robots.txt
  • Stellen Sie sicher, dass Sie es nicht zu oft tun. Google wird Sie drosseln und möglicherweise auf die schwarze Liste setzen, wenn Sie es zu oft tun.
  • Senden Sie einen korrekten User-Agent-Header, um anzuzeigen, dass Sie ein Bot sind
  • Die Seite einer App ist groß - stellen Sie sicher, dass Sie gzip akzeptieren und die mobile Version anfordern
  • Die GPlay-Website ist keine API. Es ist egal, ob Sie sie analysieren, damit sie sich im Laufe der Zeit ändert. Stellen Sie sicher, dass Sie mit Änderungen umgehen - z. B. durch einen Test, um sicherzustellen, dass Sie das bekommen, was Sie erwartet haben.

Um eine Seite Metadaten zu erhalten, müssen Sie die HTML-Seite abrufen und ordnungsgemäß analysieren. Mit JSoup können Sie versuchen:

      HttpClient httpClient = HttpClientBuilder.create().build();
      HttpGet request = new HttpGet(crawlUrl);
      HttpResponse rsp = httpClient.execute(request);

      int statusCode = rsp.getStatusLine().getStatusCode();

      if (statusCode == 200) {
           String content = EntityUtils.toString(rsp.getEntity());    
           Document doc = Jsoup.parse(content);
           //parse content, whatever you need
           Element price = doc.select("[itemprop=price]").first();
      }      

Für diesen sehr einfachen Anwendungsfall, mit dem Sie beginnen sollten. In dem Moment, in dem Sie interessantere Dinge tun möchten, werden die Dinge jedoch kompliziert:

  • Die Suche in Robotern ist verboten.
  • Es ist schwierig, App-Metadaten auf dem neuesten Stand zu halten. Es gibt mehr als 2,2 Millionen Apps. Wenn Sie ihre Metadaten täglich aktualisieren möchten, gibt es 2,2 Anfragen pro Tag, die 1) sofort blockiert werden, 2) viel Geld kosten - pessimistische 220-GB-Datenübertragung pro Tag, wenn eine App 100.000 ist
  • Wie entdecken Sie neue Apps?
  • Wie erhalten Sie Preise in jedem Land, Übersetzungen jeder Sprache

Die Liste geht weiter. Wenn Sie dies alles nicht selbst tun möchten, können Sie die 42matters-API in Betracht ziehen , die Nachschlagen und Suchen, Top-Google-Diagramme, erweiterte Abfragen und Filter unterstützt. Und das für 35 Sprachen und mehr als 50 Länder.

[2]:

Ivan Delchev
quelle
Hallo Ivan und willkommen bei stackoverflow. Danke für die Antwort. Für zukünftige Antworten versuchen Sie bitte, so viele Informationen und Details wie möglich anzugeben. Wenn Sie Codebeispiele oder Links zu Tutorials / Dokumentationen haben, teilen Sie diese. Für diese Frage ist es nicht wirklich möglich, viele Informationen hinzuzufügen, daher ist diese Antwort in Ordnung. Nur ein Vorschlag für Ihre zukünftigen Aktivitäten auf SO. Vielen Dank
Springrbua
2
Das Abrufen von Benutzerkritiken wird derzeit von der 42matters-API nicht unterstützt (was ansonsten recht nett ist). Hoffentlich erspart dies jemandem das Erstellen und anschließende Verlassen eines Kontos.
Acj
Die Google Market API ist am besten für Google Play Market Informationen geeignet, aber nicht kommerziell kostenlos: p
Hunain Usman
71
Dieser Service ist sehr teuer
mate64
Wie erhalten Sie "Benutzer mag auch" -Daten für Ihre API? Mit Google zusammenarbeiten? Weil es unmöglich ist, das durch Krabbeln auf dem Markt zu erreichen ...
Marian Klühspies
5

Der Google Play Store stellt diese Daten nicht zur Verfügung, daher müssen die Websites sie nur kratzen.

Sparky
quelle
2
Nicht (länger?) 100% wahr. Ein Beispiel für eine XHR-Schnittstelle finden Sie unter Formatieren von JSON-Daten mit PHP.https://play.google.com/store/xhr/getdoc Sie wird also offensichtlich von Google Play selbst angeboten. Die zurückgegebenen Ergebnisse müssen jedoch angepasst werden, um verwendet werden zu können (etwas) wie das Ersetzen der 4 Zeichen in der ersten Zeile durch etwas wie data =vor dem Ausführen eines eval()auf sie).
Izzy
Guter Punkt. Ich wusste nichts über Bibliotheken, die Leute geschrieben hatten, um auf die undokumentierte API zuzugreifen. Soweit ich weiß, unterstützt der Play Store es nicht für den allgemeinen Gebrauch.
Sparky
1
Weiß nicht. Ich habe beide ( HerokuApp und die aus meinem vorherigen Kommentar) ausprobiert , keine Probleme. Heroku liefert nette JSON, verpasst aber leider die Gesamtzahl der Stimmen - während die andere alle liefert, aber in einer schrecklichen Formatierung ...
Izzy
1
@ Izzy Link funktioniert nicht mehr
Dennis
@ Tennis nichts, was ich dagegen tun kann, scheint die Antwort gelöscht worden zu sein. Selbst wenn dies nicht der Fall wäre, ist diese App endgültig verschwunden, und sogar ihre Domain (playstoreapi.com) steht jetzt "zum Verkauf".
Izzy