从Android Play商店获取数据

时间:2012-04-22 21:09:30

标签: android google-play

我见过一些使用Android Play商店中的数据的应用和网站。例如。具有顶级应用排名的应用或网站等。但您如何获得数据?从哪里我可以解析它?

5 个答案:

答案 0 :(得分:46)

您可能会尝试使用非正式的open-source API for the Android Market来获取所需的信息。希望这会有所帮助。

答案 1 :(得分:19)

免责声明:我来自42个人,他们已经在https://42matters.com/api提供了这些数据,请随时查看或给我们留言。

正如lenik所提到的那样,开源库已经有助于从GPlay获取一些数据。如果您想自己构建一个,可以尝试解析Google Play应用页面,但是您应该注意以下事项:

  • 确保您尝试解析的网址未在robots.txt中屏蔽 - 例如https://play.google.com/robots.txt
  • 确保您不会经常这样做,如果您做得太多,Google会扼杀并可能将您列入黑名单。
  • 发送正确的User-Agent标题以实际显示您是一个机器人
  • 应用的页面很大 - 请确保您接受gzip并请求移动版
  • GPlay网站不是API,它不关心您解析它因此会随着时间的推移而改变。确保您处理更改 - 例如通过测试来确保你得到你期望的。

因此,记住获取一个页面元数据是获取页面html并正确解析它的问题。使用JSoup,您可以尝试:

      HttpClient httpClient = HttpClientBuilder.create().build();
      HttpGet request = new HttpGet(crawlUrl);
      HttpResponse rsp = httpClient.execute(request);

      int statusCode = rsp.getStatusLine().getStatusCode();

      if (statusCode == 200) {
           String content = EntityUtils.toString(rsp.getEntity());    
           Document doc = Jsoup.parse(content);
           //parse content, whatever you need
           Element price = doc.select("[itemprop=price]").first();
      }      

对于那个非常简单的用例,应该可以帮助您入门。然而,当你想要做更多有趣的事情时,事情会变得复杂:

  • 机器人禁止搜索。
  • 保持应用元数据最新是很难的。有超过220万个应用程序,如果你想每天刷新他们的元数据,每天有2.2个请求,这将1)立即被阻止,2)花费很多钱 - 如果一个应用程序是100k,每天有220gb的悲观数据传输
  • 您如何发现新应用
  • 您如何在每个国家/地区获得定价,每种语言的翻译

列表还在继续。如果您不想自己完成所有这些操作,可以考虑42matters API,它支持查找和搜索,顶级Google图表,高级查询和过滤器。这适用于35种语言和50多个国家。

答案 2 :(得分:18)

我编写了一个小型Node.js模块,用于从Google Play中抓取应用并列出数据:google-play-scraper

var gplay = require('google-play-scrapper');

gplay.List({
    category: gplay.category.GAME_ACTION,
    collection: gplay.collection.TOP_FREE,
    num: 2
  }).then(console.log);

结果:

 [ { url: 'https://play.google.com/store/apps/details?id=com.playappking.busrush',
    appId: 'com.playappking.busrush',
    title: 'Bus Rush',
    developer: 'Play App King',
    icon: 'https://lh3.googleusercontent.com/R6hmyJ6ls6wskk5hHFoW02yEyJpSG36il4JBkVf-Aojb1q4ZJ9nrGsx6lwsRtnTqfA=w340',
    score: 3.9,
    price: '0',
    free: false },
  { url: 'https://play.google.com/store/apps/details?id=com.yodo1.crossyroad',
    appId: 'com.yodo1.crossyroad',
    title: 'Crossy Road',
    developer: 'Yodo1 Games',
    icon: 'https://lh3.googleusercontent.com/doHqbSPNekdR694M-4rAu9P2B3V6ivff76fqItheZGJiN4NBw6TrxhIxCEpqgO3jKVg=w340',
    score: 4.5,
    price: '0',
    free: false } ]

答案 3 :(得分:5)

Google Play商店不提供此数据,因此网站必须抓取它。

答案 4 :(得分:0)

这是一个谷歌浏览器扩展程序,允许您下载您的评论:https://chrome.google.com/webstore/detail/my-play-store-reviews/ldggikfajgoedghjnflfafiiheagngoa?hl=en