2013-06-08 8 views
5

Ich möchte den Google Play Store durchsuchen, um die Webseiten der gesamten Android-Anwendung herunterzuladen (Alle Webseiten mit der folgenden Basis-URL: https://play.google.com/store/apps/). Ich habe die robots.txt-Datei des Playstores überprüft, und es ist nicht möglich, diese URLs zu crawlen.Durchsuchen des Google Play Stores

Wenn ich im Google Play Store stöbere, sehe ich nur Top-Anwendungen mit bis zu 3 Seiten für jede der Kategorien. Wie bekomme ich die anderen Anwendungsseiten?

Wenn jemand versucht hat, Google Play zu crawlen, lassen Sie mich bitte die folgenden Dinge wissen: a) War es Ihnen gelungen, den Play Store zu crawlen? Wenn ja, lassen Sie mich bitte wissen, wie Sie das gemacht haben. b) Wie kann ich die verborgenen Anwendungsseiten crawlen, die in den Top-Apps für die einzelnen Kategorien nicht sichtbar sind? c) Gibt es Techniken, um die Anwendungen auch herunterzuladen und nicht nur die Webseiten?

Ich suchte schon um und fand die folgenden Links:

a) https://code.google.com/p/android-market-api/ 
b) https://code.google.com/p/android-marketplace-crawler/source/checkout 
c) http://mohsin-junaid.blogspot.co.uk/2012/12/how-to-install-android-marketplace.html 
d) http://mohsin-junaid.blogspot.in/2012/12/how-to-download-multiple-android-apks.html 

Dank!

Antwort

2

Ich habe den Job in Python vor, was Sie brauchen, ist eine Web-Selbsttest-Bibliothek namens Selen, kann Javascript-Code ausführen und das Ergebnis an Python zurückgeben, mit Javascript können Sie auf die Schaltfläche "Mehr anzeigen" klicken das Programm selbst. Und wenn Sie alle Links für eine einzelne Kategorieseite erhalten, können Sie einige Informationen für die App erhalten. Die einfache Demo here. Hoffnung hilfreich.

2

Zu allererst Google Play robots.txt ist nicht zulassen NICHT die Seiten mit der Basis "/ store/apps" Siehe .

Wenn Sie Google Play crawlen möchten, müssen Sie Ihren eigenen Web-Crawler entwickeln, die HTML-Seite parsen und die benötigten App-Metadaten extrahieren (z. B. Titel, Beschreibungen, Preis usw.). Dieses Thema wurde in diesem anderen Artikel behandelt question. Es gibt Bibliotheken mit, dass zu helfen, zum Beispiel:

Schwieriger ist es, die App-Seiten zu "finden" zu kriechen. Sie könnten 1) die Google Play Sitemap oder 2) folgen Sie den app-Links, die Sie auf jeder Seite finden Sie Crawl wie in der Link Extractor Dokumentation erläutert (falls Sie Scrapy verwenden möchten).

Eine weitere Option ist die Verwendung einer Open-Source-Bibliothek auf ProtoBuf-Basis zum Abrufen von Metadaten über eine App, hier der Link zum Projekt: https://code.google.com/archive/p/android-market-api. Diese Bibliothek ruft App-Metadaten aus Google Play im Namen eines gültigen Google-Kontos ab. In diesem Fall benötigen Sie jedoch einen Crawler, um zu ermitteln, welche Apps verfügbar sind, und deren Metadatenabruf zu planen. Dieses andere Open-Source-Projekt kann Ihnen dabei helfen: https://code.google.com/archive/p/android-marketplace-crawler.

Wenn Sie all dies nicht selbst implementieren möchten, können Sie mithilfe eines Managed Services eines Drittanbieters über eine JSON-basierte API auf die Metadaten von Android-Apps zugreifen.Zum Beispiel 42matters.com (die Firma für die ich arbeite) bietet eine API für Android und iOS-Apps' Meta-Daten abrufen, hier weitere Details:

https://42matters.com/app-market-data

Um die Titel, Icon, Beschreibung zu erhalten

https://42matters.com/docs/app-market-data/android/apps/lookup

Dies ist ein Beispiel für die JSON-Antwort für die "Angry Birds Space Premium" App::, Downloads für eine App Sie die "Lookup" Endpunkt verwenden können, wie hier dokumentiert

{ 
    "package_name": "com.rovio.angrybirdsspace.premium", 
    "title": "Angry Birds Space Premium", 
    "description": "Play over 300 interstellar levels across 10 planets...", 
    "short_desc": "The #1 mobile game of all time blasts off into space!", 
    "rating": 4.3046236038208, 
    "category": "Arcade", 
    "cat_key": "GAME_ARCADE", 
    "cat_keys": [ 
     "GAME_ARCADE", 
     "GAME", 
     "FAMILY_EDUCATION", 
     "FAMILY" 
    ], 
    "price": "$1.15", 
    "downloads": "1,000,000 - 5,000,000", 
    "version": "2.2.1", 
    "content_rating": "Everyone", 
    "promo_video": "https://www.youtube.com/embed/g6AL9YqRHaI?ps=play&vq=large&rel=0&autohide=1&showinfo=0&autoplay=1", 
    "market_update": "2015-07-03T00:00:00+00:00", 
    "screenshots": [ 
     "https://lh3.googleusercontent.com/ZmuBQzIy1G74coPrQ1R7fCeKdJmjTdpJhNrIHBOaFyM0N2EYdUPwZaQjnQUtiUDGmac=h310", 
     "https://lh3.googleusercontent.com/Xg2Aq70ZH0SnNhtSKH7xg9jCfisWgmmq3C7xQbx6YMhTVAIRqlRJeH8GYtjxapb_qR4=h310", 
     "https://lh3.googleusercontent.com/T4o5-2_UP82sj4fSSegbjrGmslNHlfvtEYuZacXMSOC55-7eyiKySw05lNF1QQGO2FeU=h310", 
     "https://lh3.googleusercontent.com/f2ennaLdivFu5cQQaVPKsRcWxB8FS5T4Bkoy3l0iPW9-GDDnTVRhvR5kz6l4m8FL1c8=h310", 
     "https://lh3.googleusercontent.com/H-9M03_-O9Df1nHr2-rUdjtk2aeBY3bAxnqSX3m2zh_aV8-K1t0qU1DxLXnK0GrDAw=h310" 
    ], 
    "created": "2012-03-22T08:24:00+00:00", 
    "developer": "Rovio Entertainment Ltd.", 
    "number_ratings": 20812, 
    "price_currency": "$", 
    "icon": "https://lh3.ggpht.com/aQaIEGrmba1ENSEgUtArdm3yhJUug7BRWlu_WaspoJusZyHv1rjlWtYqe_qRjE_Kmh1E=w300", 
    "icon_72": "https://lh3.ggpht.com/aQaIEGrmba1ENSEgUtArdm3yhJUug7BRWlu_WaspoJusZyHv1rjlWtYqe_qRjE_Kmh1E=w72", 
    "market_url": "https://play.google.com/store/apps/details?id=com.rovio.angrybirdsspace.premium&referrer=utm_source%3D42matters.com%26utm_medium%3Dapi" 
} 

Ich hoffe, das hilft, ansonsten zögern Sie nicht, sich mit mir in Verbindung zu setzen. Ich kenne dieses Thema sehr gut und kann Sie in die richtige Richtung weisen.

Grüße,

Andrea

+0

ich jede API in 42matter nicht sehen können, die für das Abrufen alle Anwendungen verwendet werden kann. Nehmen wir an, ich möchte die E-Mails aller Google Play-Anwendungen analysieren, die mehr als 10.000 Installationen und weniger als 5 Millionen Installationen haben. 42matter bietet API nur zum Abrufen von App nach Paket oder nach Suchbegriff – user12384512

+0

@ user12384512 mit der Advanced Query API https://42matters.com/docs/app-market-data/android/apps/advanced-query-api, die Sie genau abrufen können was Sie brauchen, indem Sie downloads_gte bzw. downloads_lte einstellen. Hoffe das hilft :) – agirardello