可能在3月底,谷歌改变了Play商店的HTML代码。
附加信息的结构也已经改变。
包括我在内的一些开发者,使用Jsoup来检查Play商店的最新版本。
也许你使用的是像这样的代码:
Document doc = Jsoup.connect
("https://play.google.com/store/apps/details?id=name.package.your").get();
Elements Version = doc.select(".content");
for (Element v : Version) {
if (v.attr("itemprop").equals("softwareVersion")) {
VersionMarket = v.text();
}
}
但是,谷歌应用商店的更改后,您的代码返回了null。
因为,"itemprop"和"sofrwareVersion"已经消失了,就像这样。
在此输入图像描述
因此,您需要使用Jsoup在Google Play Store的“附加信息”中解析应用程序版本的新方法。
try {
Document doc = Jsoup
.connect(
"https://play.google.com/store/apps/details?id=name.package.your")
.get();
Elements Version = doc.select(".htlgb ");
for (int i = 0; i < 5 ; i++) {
VersionMarket = Version.get(i).text();
if (Pattern.matches("^[0-9]{1}.[0-9]{1}.[0-9]{1}$", VersionMarket)) {
break;
}
}
上述代码的作用如下:
1.解析Play Store上的应用程序页面。
2.选择所有“htlgb”内容。
- 如图所示,“2018年3月3日”,“1,000+”,“2.0.4”,“4.4及更高版本”等。
3.在[for Loop]中,[Regex]查找与您的版本模式(如2.0.4)匹配的值并停止搜索。
4.VersionMarket是您的“应用程序版本”,可以使用它。
// 2018-08-04添加评论
由于某种原因,上面的代码返回的信息是“安装信息”,而不是“版本信息”。
因此,如果按照以下示例修改代码,则可以再次返回“版本信息”。
try {
Document doc = Jsoup
.connect(
"https://play.google.com/store/apps/details?id=name.package.your")
.get();
Elements Version = doc.select(".htlgb ");
for (int i = 0; i < 10 ; i++) {
VersionMarket = Version.get(i).text();
if (Pattern.matches("^[0-9]{1}.[0-9]{1}.[0-9]{1}$", VersionMarket)) {
break;
}
}
以上代码将“for break”中的数字从5更改为10。
这是因为Google Play商店的HTML代码中“htlgb”代码的数量已更改。