gpt4 book ai didi

java - 如何从类内同名但数据不同的类中获取数据?

转载 作者:行者123 更新时间:2023-12-02 05:51:14 25 4
gpt4 key购买 nike

我正在尝试提取我的 DnD 角色统计数据(力量、敏捷、智慧等)并打印数字。到目前为止我尝试过的所有方法都没有提取任何数据并打印空值。 https://www.dndbeyond.com/characters/11196319

我已经尝试过

doc.select("ct-ability-summary__label");

doc.select("ct-ability-summary__label").first();

doc.select("div[class=ct-ability-summary__primary:eq(0)]");

List<String> Stats = new ArrayList<>();
for( Element element : doc.select("div[class=ct-ability-summary__primary]") )
{
Stats.add(element.text());
}


<div class="ct-quick-info__abilities">
<div class="ct-quick-info__ability">
<div class=" ct-ability-summary">
<div class="ct-ability-summary__heading">...</div>
<div class="ct-ability-summary__primary">10</div>
<div class="ct-ability-summary__secondary">...</div>
<div class="ct-quick-info__ability">
<div class=" ct-ability-summary">
<div class="ct-ability-summary__heading">...</div>
<div class="ct-ability-summary__primary">13</div>
<div class="ct-ability-summary__secondary">...</div>

我正在尝试从其中提取数据并将其打印出来。所以在这种情况下我希望打印 10 和 13。它可以添加到列表/数组或单个字符串中。只要它获得可用于打印的数据。如果这两个可以工作,我假设我可以让其他 4 个工作。

最佳答案

当您访问此页面时,您首先看到的是带有加载微调器的空白页面: enter image description here

这始终表明 JavaScript 获取了一些附加数据并动态添加到页面 (DOM) 中。 Jsoup 无法执行 JavaScript,这就是您的选择返回 null 的原因。您可以使用浏览器的调试器来检查加载的内容:

enter image description here

您可以看到数据存储为 JSON,并且可以使用以下 URL 直接访问: https://www.dndbeyond.com/character/11196319/json

不幸的是,Jsoup 无法解析 JSON,因此您必须使用其他库。另请注意,此页面执行一些计算,并非您看到的所有内容都直接在此 JSON 中注明。例如,如果您对其进行格式化,您可以看到一些统计数据:

stats: [
{
id: 1,
name: null,
value: 10},
{
id: 2,
name: null,
value: 13},
{
id: 3,
name: null,
value: 14},
{
id: 4,
name: null,
value: 15},
{
id: 5,
name: null,
value: 12},
{
id: 6,
name: null,
value: 12}
],

有些事情似乎不对劲,因为你的智力不是 15,而是 16,那是因为你有种族加值 +1,而该值存储在其他地方。找出这些统计数据如何相互影响可能很复杂。

因此,为了确保您拥有正确的最终值而不是基本值,我建议放弃解析 JSON 的 Jsoup 方法并使用 Selenium Webdriver,因为它执行 JavaScript,因此能够获取您看到的确切值。

关于java - 如何从类内同名但数据不同的类中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56046384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com