Получение данных из Android Play Store [закрыто]


83

Я видел некоторые приложения и веб-сайты, которые используют данные из магазина Android Play. Например, приложения или сайты с высшим рейтингом приложений и т. Д. Но как вы можете получить данные? Откуда я могу это разобрать?


Существуют открытые Q & Как на сайте OpenData: здесь и здесь и здесь
philshem

@Umair нет, спасибо. этому вопросу больше 5 лет.
Ахмад,

Ответы:


47

Для Android Market существует неофициальный API с открытым исходным кодом, который вы можете попробовать использовать для получения необходимой информации. Надеюсь это поможет.


Я предполагаю, что вы уже использовали этот API раньше. Не могли бы вы помочь мне с проблемой? Вот мой вопрос по API: stackoverflow.com/questions/10281232/…
Ахмад

@lenik, как я могу использовать этот APi с C #?
Elad Benda

привет, смогли ли вы получить то, что вам нужно, используя приведенный выше API? Я ищу пути к эталонным музыке тоже ...
vinnybad

это специфично для Android, поскольку большая часть использования связана с Интернетом, например PHP; единственное, что он может очистить с помощью PHP, - это идентификатор устройства и один снимок экрана, который ничто по сравнению с другим API ..
Хунэйн Усман

Как использовать этот API для получения сведений об игре из Google Play с помощью php. Я не знал, с чего начать? вот мой вопрос. Пожалуйста, ответьте мне ... stackoverflow.com/questions/23622898/…

21

Отказ от ответственности: я из 42matters, который уже предоставляет эти данные на https://42matters.com/api , не стесняйтесь проверить это или напишите нам.

Как упомянул Леник, существуют библиотеки с открытым исходным кодом, которые уже помогают получать некоторые данные из 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 млн приложений, если вы хотите обновлять их метаданные ежедневно, есть 2,2 запроса в день, которые 1) будут немедленно заблокированы, 2) стоит больших денег - пессимистичная передача данных 220 ГБ в день, если одно приложение составляет 100 тыс.
  • Как вы открываете для себя новые приложения
  • Как узнать цены в каждой стране, перевод на каждый язык

Этот список можно продолжить. Если вы не хотите делать все это самостоятельно, вы можете рассмотреть API 42matters , который поддерживает поиск и поиск, топовые диаграммы Google, расширенные запросы и фильтры. И это для 35 языков и более чем 50 стран.

[2]:


Привет, Иван, и добро пожаловать в stackoverflow. Спасибо за ответ. Для будущих ответов постарайтесь предоставить как можно больше информации и подробностей. Если у вас есть образцы кода или ссылки на учебные пособия / документацию, поделитесь ими. Для этого вопроса невозможно добавить много информации, поэтому ответ нормальный. Просто предложение для вашей будущей деятельности на SO. Спасибо
Springrbua

2
Получение отзывов пользователей в настоящее время не поддерживается 42matters API (что в остальном неплохо). Надеюсь, это спасет кого-то от создания, а затем отказа от учетной записи.
acj

API Google Market лучше всего подходит для информации о Google Play Market, но он не является коммерчески бесплатным: p
Hunain Usman

72
Эта услуга очень дорогая
mate64 07

Как получить данные типа "Пользователь также любит" для вашего API? Сотрудничать с Google? Потому что невозможно добиться этого,
просматривая

20

Я написал небольшой модуль 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 } ]

19
Думаю, да, это все общедоступные данные. Было бы забавно сказать Google: «Эй, не сканируй мой сайт».
Факундо Олано,

Как использовать это с PHP для внедрения на веб-сайт?
ama rullz amarullzz

Это пакет Node.js. Вы можете создать простое приложение узла, чтобы выгрузить его в базу данных, или связать его с помощью browserify, чтобы запускать его из браузера. Вы также можете использовать эту написанную мной оболочку, если хотите представить ее как RESTful API.
Факундо Олано

1
Спасибо, чувак, я искал такой инструмент. На самом деле я хотел получить отзывы о стороннем приложении, у которого у меня нет доступа к консоли разработчика, а API от Google запрашивает токен доступа. Я хотел бы узнать базовую архитектуру модуля узла, как он получает обзор из игрового магазина?
Prateek Jain

1
Я также нашел многообещающий проект на github github.com/s101d1/CSPlayStoreScraper .
смедасн 03

5

Магазин Google Play не предоставляет эти данные, поэтому сайты, должно быть, просто очищают их.


2
Не (дольше?) На 100% верно, см. Форматирование данных JSON с использованием PHP для примера интерфейса XHR, который находится по адресу https://play.google.com/store/xhr/getdoc- так что он, очевидно, предлагается самим Google Play. Однако возвращаемые результаты нуждаются в некоторой корректировке, чтобы их можно было использовать (что-то например, заменить 4 символа в первой строке чем-то вроде, data =прежде чем делать eval()на них).
Иззи

Хорошая точка зрения. Я не знал о библиотеках, которые люди писали для доступа к недокументированному API. Насколько мне известно, Play Store не поддерживает его для общего использования.
Sparky

1
Не знаю. Я пробовал оба ( HerokuApp и тот из моего предыдущего комментария), без проблем. Heroku предоставляет хороший JSON, но, к сожалению, не учитывает общее количество голосов - в то время как другой предоставляет все, но в ужасном форматировании ...
Иззи

1
@Izzy Link больше не работает
Деннис Гус

@Dennis, я ничего не могу с этим поделать, похоже, ответ был удален. Даже если бы это было не так, это приложение исчезло навсегда, даже их домен (playstoreapi.com) сейчас «продается».
Иззи

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.