You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Google Play Store获取应用版本?Jsoup获取返回null求助

Google Play版本号爬取返回null问题排查与解决

我尝试了多种在线解决方案,但均未奏效,newVersion始终返回null。以下是我实现功能的Java代码:

protected String doInBackground(String... params) {
    if(!isFinishing()) {
        String currentVersion = AppUtil.getPackageVersion(UpdateActivity.this, appItem.mPackageName);
        try {
             newVersion = Jsoup.connect("https://play.google.com/store/apps/details?id=" + appItem.mPackageName + "&hl=en")
                    .timeout(30000)
                    .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                    .referrer("http://www.google.com")
                    .get()
                    .select("div.hAyfc:nth-child(4) > span:nth-child(2) > div:nth-child(1) > span:nth-child(1)")
                    .first()
                    .ownText();
        } catch (IOException e) {
            e.printStackTrace();
        }
      }
        return newVersion;
}

问题原因及解决办法

  • CSS选择器依赖不稳定的DOM结构:Google Play页面会不定期更新,你使用的选择器完全依赖元素的固定位置(nth-child(4)这类),一旦页面结构调整就会失效。换成基于文本内容的选择器更可靠:
    // 修改后的核心代码
    Document doc = Jsoup.connect("https://play.google.com/store/apps/details?id=" + appItem.mPackageName + "&hl=en")
            .timeout(30000)
            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36")
            .referrer("http://www.google.com")
            .get();
    // 定位包含"Current Version"的元素,再取相邻的版本号文本
    Elements versionNodes = doc.select("div:contains(Current Version) ~ div span");
    if (!versionNodes.isEmpty()) {
        newVersion = versionNodes.first().ownText();
    }
    
  • User-Agent过于老旧:你使用的是2007年的Firefox UA,Google可能会返回适配旧浏览器的特殊页面,或者直接拦截请求。换成主流现代浏览器的UA即可。
  • 未处理元素不存在的情况:原代码中直接调用first(),如果选择器没找到元素会触发空指针,同时newVersion保持null。必须先判断元素集合是否为空再取值。
  • 网络访问限制:如果设备所在地区无法正常访问Google Play,请求会返回异常页面,导致选择器找不到目标元素。需要确认网络环境是否能访问该URL。

内容的提问来源于stack exchange,提问作者user19554057

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 09:10:44