JSoup 抓取不断变化的价值

JSoup grab value that constantly changes

我正在尝试从以下不断变化的 HTML 中获取值

<span class="rts-counter" rel="current_population">
    <span class="rts-nr-sign"></span>
    <span class="rts-nr-int rts-nr-10e9">7</span>
    <span class="rts-nr-thsep">,</span>
    <span class="rts-nr-int rts-nr-10e6">786</span>
    <span class="rts-nr-thsep">,</span>
    <span class="rts-nr-int rts-nr-10e3">396</span>
    <span class="rts-nr-thsep">,</span>
    <span class="rts-nr-int rts-nr-10e0">227</span>
</span>

到目前为止我的代码没有产生任何结果

  Document doc = Jsoup.connect("https://www.worldometers.info/world-population/").get();
        Elements div = doc.select("div.maincounter-number");
        Elements span = div.select("span");
        System.out.println(span);

输出。我想要的东西在...

<span class="rts-counter" rel="current_population">retrieving data... </span>

对于具有动态内容的网站来说,使用占位符作为

是很常见的
<span class="rts-counter" rel="current_population">retrieving data... </span>

所以这个跨度可以稍后用数据填充。通常在对服务器执行另一个异步请求后仅加载正在更改的数据。
Jsoup 无法执行 JavaScript 但通常可以直接调用通常返回为 JSON 的其他数据资源。但在这里它行不通,我有个坏消息...
您看到的数据是假的! 我正在使用 Chrome 的调试器监视此站点并检查“网络”选项卡我发现与服务器没有通信并且没有动态获取的数据.这意味着仅在第一次加载时检索数据,然后 JavaScript 并且使用一些数学公式在经过特定时间后将计数器增加特定值,从而赋予它一些随机性以使其看起来令人信服。
使用此 URL 下载初始数据值: https://www.realtimestatistics.net/rts/init.php?callback=jsoncallback&host=worldometers&time=1590244162325&_=1590244161401(link 是动态的,现在已经过期了) 但结果以某种方式编码。它似乎已在此脚本中解码 https://www.realtimestatistics.net/rts/RTSp.js 但它已最小化且难以阅读。

因此,要获得原始值,您必须进行逆向工程并分析他们的 RTSp.js 以获得初始值和他们用来增加计数器的公式。

相关信息https://www.worldometers.info/licensing/what/