没有API时如何获取Android电子市场数据?

据我所知,没有API(官方或非官方)访问Android电子市场上的应用程序的信息(信息,如标题,图标,说明,下载,评论等)。但是,有几个网站无论如何已经设法编译这些信息。

我的问题是:这是如何做的?

几个猜测。

  • 手动(不可能,由于数量)
  • 实现官方应用程序使用的协议(通过反编译或观察数据包)
  • 用官方应用程序运行某种debugging器来提取实时数据
  • 使用某种自动化+屏幕截图+文字识别(看起来很复杂)
  • 修改(打开)源以写入日志文件

我只是好奇如何做到这一点,因为我当然不知道。 谢谢。

Google代码上有一个Java项目,它试图为市场构build一个开源api: http : //code.google.com/p/android-market-api/

还有一些JRuby绑定: http : //github.com/jberkel/supermarket 。

但是,他们都需要Google / Market帐户,而API只是部分实现(search,评论和图片)。 此外,重build的协议缓冲区描述符(market.proto)可用于生成除Java之外的语言的绑定。

捕获数据的另一个select是使用一些自定义图像(如Cyanogenmod等)附带的tcpdump工具。 您可以捕获所有数据包,然后使用Wireshark进行分析。 这条路线比劫持wifi更容易。

结帐这灿烂的职位清除一些事情:

  • 使用tcpdump从Android收集数据包
  • 下载没有自动售货应用程序的市场应用程序

更新我一直在处理这个多一点,@gsmd是正确的,他们使用协议缓冲区传输信息,并与上述技术,您可以捕获数据包。 然后,你需要挖掘protobuffers了解消息。

据我所知,他们正在使用Protocol Buffers 。 在通过WiFi连接市场时,您将不得不嗅探手机stream量。

从开发人员控制台获取数据有一个非常好的方法。 看看: https : //github.com/tmurakam/googleplay_dev_scraper

我有它在我的覆盆子pi上运行,它的作品非常好。 使用bash脚本安装并进一步自动化非常简单。 我真的很推荐这个刮板的人谁有兴趣从开发者控制台获取数据!

谷歌最近增加了对此的官方支持。 报告会导出到Google云端存储分区

有关详情,请参阅https://support.google.com/googleplay/android-developer/answer/6135870?hl=zh_CN&ref_topic=3450942

不幸的是,Google Play Store(以前称为Android Market)还没有官方API来访问Android应用的元数据(或任何其他统计信息)。

正如其他答案中提到的,您可以开发自己的networking爬虫,parsingHTML页面,并提取您需要的应​​用程序元数据(例如标题,说明,价格等)。 这个主题已经在这个其他问题中讨论过了 。

另一个select是使用基于ProtoBuf的开源库来获取有关应用程序的元数据,这里是项目的链接: https : //code.google.com/archive/p/android-market-api 。 这个库代表一个有效的Google帐户从Google Play获取应用元数据,但是您仍然需要爬虫来“查找”哪些应用可用,并计划他们的元数据检索。 这个其他的开源项目可以帮助你: https : //code.google.com/archive/p/android-marketplace-crawler 。

如果您不想自己实现所有function,则可以使用第三方服务通过基于JSON的API访问Android应用程序元数据。 例如, 42matters.com (我工作的公司)为Android和iOS提供一个API来检索应用程序的元数据,这里有更多的细节:

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

为了获得应用程序的标题,图标,说明,下载,您可以使用“lookup”端点,如下所示:

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

这是“Angry Birds Space Premium”应用程序的JSON响应示例:

{ "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" } 

另外,我们也有一个数据input转储一次访问所有的移动应用程序数据: https : //42matters.com/docs/app-market-data/file-dump/android-app-details (在这个页面上,你也可以为您的testingfind一个免费的数据样本)。

我希望这有助于,否则随时与我取得联系。 我很了解这个话题,可以指导你正确的方向。

问候,

安德里亚