¿Cómo obtener datos de Android Market cuando no hay API?

Por lo que puedo decir, no hay API (oficial o no oficial) para acceder a información sobre aplicaciones en el Android Market (información como título, icono, descripción, descargas, comentarios, etc.) Sin embargo, hay algunos sitios web que han logrado comstackr esta información de todos modos.

Mi pregunta es: ¿Cómo se hace esto?

Un par de conjeturas.

  • Manualmente (no es probable, debido al volumen)
  • Implementado el protocolo utilizado por la aplicación oficial (descomstackndo u observando paquetes)
  • Ejecutando algún tipo de depurador con la aplicación oficial para extraer los datos en vivo
  • Usar algún tipo de automatización + capturas de pantalla + reconocimiento de texto (parece complicado)
  • Modificar la fuente (abierta) para escribir un archivo de registro

Solo tengo curiosidad por cómo se hizo esto porque estoy seguro de que no puedo resolverlo. Gracias.

Hay un proyecto de Java en el código de Google que intenta crear una API de código abierto para el mercado: http://code.google.com/p/android-market-api/

También hay algunos enlaces JRuby para él: http://github.com/jberkel/supermarket .

Sin embargo, ambos requieren una cuenta de Google / Market, y la API solo se implementa parcialmente (búsquedas, comentarios e imágenes en este momento). Además, el descriptor de búfer de protocolo reconstruido (market.proto) podría usarse para generar enlaces para lenguajes distintos de Java.

Otra opción para capturar datos es usar la herramienta tcpdump que viene con algunas imágenes personalizadas (como Cyanogenmod y otros). Puede capturar todos los paquetes y luego analizarlos usando Wireshark . Esta ruta es más fácil que secuestrar wifi.

Verifique estas publicaciones espléndidas para aclarar algunas cosas:

  • Recolectando paquetes con tcpdump desde Android
  • Descargar aplicaciones de Market sin la aplicación de ventas

Actualización He estado trabajando en esto un poco más y @gsmd está en lo correcto y usan los Buffers de Protocolo para transferir la información y con la técnica descrita anteriormente puedes capturar los paquetes. Entonces necesitarás profundizar en los protobuffers para entender los mensajes.

Hasta donde yo sé, están usando Protocolos de Protocolo . Tendrá que olfatear el tráfico del teléfono mientras está accediendo al mercado conectado a través de wifi.

Hay una forma realmente buena de obtener datos de la consola de desarrollador. Eche un vistazo a: https://github.com/tmurakam/googleplay_dev_scraper

Lo tengo funcionando en mi raspberry pi y funciona realmente bien. Es bastante simple de instalar y automatizar aún más con un script bash. ¡Realmente recomendaría este raspador a cualquier persona interesada en obtener datos de la consola de desarrollador!

Google recientemente agregó soporte oficial para esto. Los informes se exportan a un cubo de almacenamiento en la nube de Google

Consulte https://support.google.com/googleplay/android-developer/answer/6135870?hl=es&ref_topic=3450942 para obtener más información.

Lamentablemente, todavía no hay una API oficial para Google Play Store (anteriormente conocida como Android Market) para acceder a los metadatos de las aplicaciones de Android (o cualquier otra estadística).

Como se menciona en otras respuestas, podría desarrollar su propio rastreador web, analizar la página HTML y extraer los metadatos de la aplicación que necesita (por ejemplo, título, descripciones, precio, etc.). Este tema ha sido cubierto en esta otra pregunta .

Otra opción es usar una biblioteca de código abierto basada en ProtoBuf para buscar metadatos sobre una aplicación, aquí el enlace al proyecto: https://code.google.com/archive/p/android-market-api . Esta biblioteca obtiene los metadatos de la aplicación de Google Play en nombre de una cuenta de Google válida, pero aún necesita un rastreador para “encontrar” qué aplicaciones están disponibles y progtwigr su recuperación de metadatos. Este otro proyecto de código abierto puede ayudarte con eso: https://code.google.com/archive/p/android-marketplace-crawler .

Si no desea implementar todo usted mismo, puede usar un servicio de terceros para acceder a los metadatos de las aplicaciones de Android a través de una API basada en JSON . Por ejemplo, 42matters.com (la empresa para la que trabajo) ofrece una API para Android y iOS para recuperar los metadatos de las aplicaciones, aquí más detalles:

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

Para obtener el Título, el Icono, la Descripción, las Descargas de una aplicación, puede usar el punto final de “búsqueda” como se documenta aquí:

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

Este es un ejemplo de la respuesta JSON para la aplicación “Angry Birds Space Premium”:

{ "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" } 

Alternativamente, también tenemos un DATA FEED DUMP para acceder a todos los datos de la aplicación móvil a la vez: https://42matters.com/docs/app-market-data/file-dump/android-app-details (en esta página también puede encuentre una muestra gratis de datos para sus pruebas).

Espero que esto ayude, de lo contrario no dude en ponerse en contacto conmigo. Conozco este tema bastante bien y puedo señalarte la dirección correcta.

Saludos,

Andrea