Подтвердить что ты не робот

Как получить данные Android Market при отсутствии API?

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

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

Несколько догадок.

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 6

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

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

Другой вариант - использовать библиотеку с открытым исходным кодом на основе 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

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

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