Я видел несколько приложений и веб-сайтов, которые используют данные из магазина Android Play. Например. Приложения или Сайты с высоким рейтингом приложений и т.д. Но как вы можете получить данные? Откуда я могу его разобрать?
Получение данных из Android Play Store
Ответ 1
Существует неофициальный API с открытым исходным кодом для Android Market, который вы можете попытаться использовать для получения необходимой вам информации. Надеюсь, это поможет.
Ответ 2
Отказ от ответственности: я из 42matters, который предоставляет эти данные уже на https://42matters.com/api, не стесняйтесь проверить это или оставить нам строку.
Как упоминалось в lenik, существуют библиотеки с открытым исходным кодом, которые уже помогают получить некоторые данные из GPlay. Если вы хотите создать его самостоятельно, вы можете попробовать проанализировать страницу приложения Google Play, но обратите внимание на следующее:
- Убедитесь, что URL-адрес, который вы пытаетесь проанализировать, не заблокирован в файле robots.txt. https://play.google.com/robots.txt
- Убедитесь, что вы не делаете это слишком часто, Google будет дросселировать и, возможно, черным списком, если вы делаете это слишком много.
- Отправьте правильный заголовок User-Agent, чтобы на самом деле показать, что вы бот
- Страница приложения большая - убедитесь, что вы принимаете gzip и запрашиваете мобильную версию.
- Веб-сайт GPlay не является API, вам все равно, что вы его разобрали, чтобы он со временем менялся. Убедитесь, что вы обрабатываете изменения - например, проверив, чтобы убедиться, что вы получите то, что ожидаете.
Итак, имея в виду, что метаданные одной страницы - это выборка html страницы и ее правильное разбор. С помощью JSoup вы можете попробовать:
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();
}
Для этого очень простого варианта использования, который должен вас запустить. Однако в тот момент, когда вы хотите сделать более интересные вещи, все усложняется:
- Поиск запрещен в роботах.
- Сохранение актуальных метаданных приложений трудно. Если вы хотите обновлять свои метаданные каждый день, есть 2,2 запроса/день, что будет 1) немедленно заблокировано, 2) стоит много денег - пессимистическая передача данных 220 гб в день, если одно приложение составляет 100 тыс.
- Как вы открываете новые приложения.
- Как вы получаете цены в каждой стране, переводы каждого языка.
Список можно продолжить. Если вы не хотите делать все это самостоятельно, вы можете рассмотреть 42matters API, который поддерживает поиск и поиск, верхние диаграммы Google, расширенные запросы и фильтры. И это для 35 языков и более 50 стран.
Ответ 3
Я закодировал небольшой модуль Node.js, чтобы очистить данные приложения и списка из 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);
Результаты:
[ { 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 } ]
Ответ 4
Google Play Store не предоставляет эти данные, поэтому сайты должны просто соскабливать его.
Ответ 5
Здесь расширитель Chrome Chrome, который позволит вам скачать ваши отзывы: https://chrome.google.com/webstore/detail/my-play-store-reviews/ldggikfajgoedghjnflfafiiheagngoa?hl=en