我见过一些使用来自 Android Play 商店的数据的应用程序和网站。例如应用程序或具有顶级应用程序排名的网站等。但是您如何获取数据?从哪里可以解析它?
5 回答
Android Market有一个非官方的开源 API,您可以尝试使用它来获取所需的信息。希望这可以帮助。
免责声明:我来自 42matters,他们已经在https://42matters.com/api上提供了这些数据,请随时查看或给我们留言。
正如 lenik 提到的,有一些开源库已经帮助从 GPlay 获取一些数据。如果您想自己构建一个,您可以尝试解析 Google Play App 页面,但您应该注意以下几点:
- 确保您尝试解析的 URL 在 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,它支持查找和搜索、谷歌排行榜、高级查询和过滤器。这适用于 35 种语言和 50 多个国家/地区。
[2]:
我编写了一个小的 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 } ]
Google Play 商店不提供这些数据,所以网站肯定只是在抓取它。
这是一个 google chrome 扩展程序,可让您下载您的评论:https ://chrome.google.com/webstore/detail/my-play-store-reviews/ldggikfajgoedghjnflfafiiheagngoa?hl=en