Как получить данные Android Маркета, когда нет API? - PullRequest
35 голосов
/ 20 августа 2009

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

Мой вопрос: как это делается?

Пара догадок.

  • Вручную (маловероятно, из-за объема)
  • Реализован протокол, используемый официальным приложением (путем декомпиляции или наблюдения пакетов)
  • Запуск какого-то отладчика с официальным приложением для извлечения данных в реальном времени
  • Использование некоторого рода автоматизации + снимки экрана + распознавание текста (кажется сложным)
  • Изменение (открытого) источника для записи файла журнала

Мне просто любопытно, как это было сделано, потому что я точно не могу понять это. Благодарю.

Ответы [ 6 ]

32 голосов
/ 24 марта 2010

В коде Google есть проект Java, который пытается создать API с открытым исходным кодом для рынка: http://code.google.com/p/android-market-api/

Для этого есть несколько привязок JRuby: http://github.com/jberkel/supermarket.

Однако им обоим требуется учетная запись Google / Market, а API реализован лишь частично (поиск, комментарии и изображения на данный момент). Кроме того, восстановленный дескриптор буфера протокола (market.proto) можно использовать для создания привязок для языков, отличных от Java.

7 голосов
/ 09 декабря 2009

Другой вариант захвата данных - использование инструмента tcpdump , который поставляется с некоторыми пользовательскими изображениями (например, Cyanogenmod и другими). Вы можете захватить все пакеты и затем проанализировать их, используя Wireshark . Этот маршрут проще, чем угон Wi-Fi.

Оформите эти великолепные посты, чтобы прояснить некоторые вещи:

Обновление Я работал над этим немного больше, и @gsmd прав, и они используют Буферы протокола для передачи информации, и с помощью описанной выше техники вы можете захватывать пакеты , Затем вам нужно покопаться в протобуферах, чтобы понять сообщения.

5 голосов
/ 21 августа 2009

Насколько я знаю, они используют протокольные буферы . Вам придется прослушивать телефонный трафик, пока он выходит на рынок, подключенный по Wi-Fi.

0 голосов
/ 27 сентября 2016

К сожалению, до сих пор нет официального API для Google Play Store (ранее известного как Android Market) для доступа к метаданным приложений Android (или любой другой статистике).

Как упоминалось в других ответах, вы можете разработать свой собственный веб-сканер, проанализировать HTML-страницу и извлечь необходимые метаданные приложения (например, заголовок, описания, цену и т. Д.). Эта тема была рассмотрена в этом другом вопросе .

Другой вариант - использовать библиотеку с открытым исходным кодом на основе ProtoBuf для извлечения метаданных о приложении, здесь ссылка на проект: https://code.google.com/archive/p/android-market-api. Эта библиотека извлекает метаданные приложения из Google Play от имени действующей учетной записи Google, но вам все еще нужен сканер, чтобы «найти» доступные приложения и запланировать их поиск метаданных. Этот другой проект с открытым исходным кодом может помочь вам в этом: https://code.google.com/archive/p/android-marketplace-crawler.

Если вы не хотите реализовывать все это самостоятельно, вы можете использовать стороннюю службу для доступа к метаданным приложений Android через API на основе JSON . Например, 42matters.com (компания, в которой я работаю) предлагает API для Android и iOS для извлечения метаданных приложений, вот более подробная информация:

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

Чтобы получить заголовок, значок, описание, загружаемые файлы для приложения, вы можете использовать конечную точку поиска, как описано здесь:

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

Это пример ответа JSON для приложения "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"
}

Кроме того, у нас также есть DATA FEED DUMP для одновременного доступа ко всем данным мобильного приложения: https://42matters.com/docs/app-market-data/file-dump/android-app-details (на этой странице вы также можете найти бесплатный образец данных для ваших тестов) .

Надеюсь, это поможет, иначе не стесняйтесь связаться со мной. Я хорошо знаю эту тему и могу указать вам верное направление.

С уважением,

Andrea

0 голосов
/ 05 марта 2015

Google недавно добавил официальную поддержку для этого. Отчеты экспортируются в хранилище облачного хранилища Google

См. https://support.google.com/googleplay/android-developer/answer/6135870?hl=en&ref_topic=3450942 для получения дополнительной информации.

0 голосов
/ 17 февраля 2014

Существует действительно хороший способ получения данных из консоли разработчика. Взгляните на: https://github.com/tmurakam/googleplay_dev_scraper

У меня он работает на моем Raspberry Pi, и он работает очень хорошо. Это довольно просто установить и дополнительно автоматизировать с помощью bash-скрипта. Я действительно рекомендую этот скребок всем, кто заинтересован в получении данных из консоли разработчика!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...