Отримання даних із магазину Android Play [закрито]


83

Я бачив деякі програми та веб-сайти, які використовують дані з магазину Android Play. Наприклад, програми чи сайти з найвищим рейтингом програм тощо. Але як ви можете отримати дані? Звідки я можу його проаналізувати?


На сайті OpenData є відкриті запитання та відповіді: тут і тут, і тут
philshem

@Umair ні, дякую. цьому питанню вже більше 5 років.
Ахмад

Відповіді:


47

Існує неофіційний API з відкритим кодом для Android Market, який ви можете спробувати використати для отримання необхідної інформації. Сподіваюся, це допомагає.


Я припускаю, що ви раніше використовували цей API. Не могли б ви допомогти мені з проблемою? Ось моє запитання щодо API: stackoverflow.com/questions/10281232/…
Ахмад,

@lenik, як я можу використовувати цей APi з C #?
Elad Benda

привіт, ти зміг отримати те, що тобі було потрібно, використовуючи наведену вище API? Я теж шукаю спосіб довідкової музики ...
віннібад,

це специфічно для Android, де, оскільки більша частина використання пов'язана з Інтернетом, як PHP; єдине , що він може дряпати з допомогою PHP є ID пристрою і один кадр , який ніщо по порівнянні з іншим API ..
Hunain Усмань

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

21

Застереження: я з 42matters, який надає ці дані вже на https://42matters.com/api , сміливо перевіряйте їх або пишіть нам рядок.

Як згадував lenik, є бібліотеки з відкритим кодом, які вже допомагають отримувати деякі дані з GPlay. Якщо ви хочете створити його самостійно, спробуйте проаналізувати сторінку додатка Google Play, але слід звернути увагу на наступне:

  • Переконайтесь, що URL-адреса, яку ви намагаєтеся проаналізувати, не заблокована в robots.txt - наприклад, https://play.google.com/robots.txt
  • Переконайтеся, що ви робите це не надто часто, якщо Google робить це занадто часто, 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
На даний момент отримання відгуків користувачів не підтримується API 42matters (що в іншому випадку є дуже приємним). Сподіваємось, це врятує когось від створення, а потім і відмови від облікового запису.
acj

API ринку Google найкращий у партії інформації про Google Play Market, але він не є комерційно безкоштовним: p
Хунайн Усман,

71
Ця послуга дуже дорога
mate64,

Як ви отримуєте дані "Користувач також любить" для вашого API? Співпрацюєте з Google? Тому що неможливо отримати це, повзаючи по ринку ...
Marian Klühspies

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. Ви можете створити просту програму-вузол, щоб скинути це в базу даних, або ви можете зв'язати її з браузером, щоб запустити з браузера. Ви також можете використовувати цю обгортку, яку я писав, якщо хочете виставити її як RESTful API.
Facundo Olano

1
дякую людино, я шукав такий інструмент. Я насправді хотів отримати відгуки про сторонній додаток, до якого у мене немає доступу до консолі розробника відтворення, а API від Google запитує маркер доступу. Я хотів би знати основну архітектуру вузлового модуля, як він отримує огляд із play store?
Prateek Jain

1
Я також знайшов перспективний проект на github github.com/s101d1/CSPlayStoreScraper .
smedasn

5

Магазин Google Play не надає цих даних, тому веб-сайти просто їх скребують.


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

Гарна думка. Я не знав про бібліотеки, які люди писали для доступу до документального API. Наскільки мені відомо, Play Store не підтримує його для загального користування.
Sparky

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

1
@Izzy Link більше не працює
Денніс,

@Dennis Я нічого не можу з цим зробити, здається, відповідь видалено. Навіть якби цього не було, цей додаток назавжди зник, навіть їхній домен (playstoreapi.com) зараз «продається».
Іззі

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.