如果没有API,如何获取Android Market数据?

all*_*aws 35 java android

据我所知,没有API(官方或非官方)访问Android Market上的应用程序信息(标题,图标,说明,下载,评论等信息).但是,有一些网站无论如何都设法编译了这些信息.

我的问题是:这是怎么做到的?

几个猜测.

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

我只是好奇这是怎么做的,因为我肯定无法理解.谢谢.

Jan*_*kel 32

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

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

但是,它们都需要Google/Market帐户,并且API仅部分实施(目前正在搜索,评论和图片).此外,重建的协议缓冲区描述符(market.proto)可用于为Java以外的语言生成绑定.

  • 我注意到使用它来从市场上获取所有数据是行不通的.经过多次请求后,我被阻止了.这真让我想知道这些网站如何获取他们的数据. (3认同)

Mar*_*ent 7

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

查看这些精彩的帖子,以清除一些事情:

更新我一直在研究这个问题并且@gsmd是正确的,他们使用协议缓冲区来传输信息,并且使用上述技术可以捕获数据包.然后你需要挖掘protobuffers来理解这些消息.


yan*_*nko 5

据我所知,他们正在使用Protocol Buffers.当你访问通过wifi连接的市场时,你必须嗅到手机流量.