Obteniendo datos de la Play Store de Android

He visto algunas aplicaciones y sitios web que usan datos de la tienda de Android Play. Por ejemplo, aplicaciones o sitios con un ranking de aplicaciones superior, etc. ¿Pero cómo puede obtener los datos? ¿Desde donde puedo analizarlo?

Existe una API de código abierto no oficial para Android Market que puede tratar de utilizar para obtener la información que necesita. Espero que esto ayude.

Descargo de responsabilidad: provengo de 42matters, que ya proporciona estos datos en https://42matters.com/api , no dude en consultarlos o envíenos un mensaje.

Como mencionó Lenik, hay bibliotecas de código abierto que ya ayudan a obtener algunos datos de GPlay. Si quiere construir uno usted mismo, puede intentar analizar la página de la aplicación Google Play, pero debe prestar atención a lo siguiente:

  • Asegúrese de que la URL que intenta analizar no está bloqueada en robots.txt, por ejemplo, https://play.google.com/robots.txt
  • Asegúrate de que no lo haces con demasiada frecuencia, Google acelerará y posiblemente incluirá una lista negra si lo haces demasiado.
  • Envíe un encabezado correcto de Usuario-Agente para mostrar realmente que usted es un bot
  • La página de una aplicación es grande: asegúrese de aceptar gzip y solicitar la versión móvil
  • El sitio web de GPlay no es una API, no importa que lo analice, por lo que cambiará con el tiempo. Asegúrese de manejar los cambios, por ejemplo, realizando una prueba para asegurarse de obtener lo que esperaba.

Así que, en vista de que obtener metadatos de una página es una cuestión de buscar la página html y analizarla correctamente. Con JSoup puedes probar:

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(); } 

Para ese caso de uso muy simple que debería comenzar. Sin embargo, en el momento en que quieras hacer más cosas interesantes, las cosas se complican:

  • La búsqueda está prohibida en los robots.
  • Mantener los metadatos de la aplicación actualizados es difícil de hacer. Hay más de 2,2 millones de aplicaciones, si desea actualizar sus metadatos diariamente hay 2,2 solicitudes / día, que 1) se bloquearán inmediatamente, 2) cuesta mucho dinero – transferencia de datos pesimista de 220gb por día si una aplicación es de 100k
  • ¿Cómo descubres nuevas aplicaciones?
  • Cómo se obtiene el precio en cada país, las traducciones de cada idioma

La lista continua. Si no desea hacer todo esto usted mismo, puede considerar la API 42matters , que admite la búsqueda y la búsqueda, los principales gráficos de Google, consultas avanzadas y filtros. Y esto para 35 idiomas y más de 50 países.

He codificado un pequeño módulo Node.js para raspar aplicaciones y listar datos de Google Play: 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); 

Resultados:

  [ { 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 } ] 

Google Play Store no proporciona esta información, por lo que los sitios deben estar simplemente raspándola.

Aquí hay una extensión de google chrome que te permitirá descargar tus reseñas: https://chrome.google.com/webstore/detail/my-play-store-reviews/ldggikfajgoedghjnflfafiiheagngoa?hl=en