Как получить данные Android Market при отсутствии API?
Насколько я могу судить, нет никакого API (официального или неофициального) для доступа к информации о Приложениях на Android Market (информация, такая как Название, Значок, Описание, Загрузки, Комментарии и т.д.). Однако есть несколько сайтов, которые все равно смогли скомпилировать эту информацию.
Мой вопрос: как это делается?
Несколько догадок.
- Вручную (маловероятно, из-за объема)
- Реализован протокол, используемый официальным приложением (путем декомпиляции или наблюдения пакетов)
- Запуск какого-то отладчика с официальным приложением для извлечения живых данных
- Использование какой-либо автоматизации + скриншоты + распознавание текста (кажется сложным)
- Изменение источника (открытого) для записи файла журнала
Мне просто интересно, как это было сделано, потому что я не могу понять это. Благодарю.
Ответы
Ответ 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. Я бы рекомендовал этот скребок всем, кто интересуется получением данных с консоли разработчика!
Ответ 5
Недавно Google добавила официальную поддержку. Отчеты экспортируются в хранилище облачных хранилищ Google.
Подробнее см. https://support.google.com/googleplay/android-developer/answer/6135870?hl=en&ref_topic=3450942.
Ответ 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