gpt4 book ai didi

java - 如何在 HTMLUnit 中检索标签内的原子值

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:40 25 4
gpt4 key购买 nike

我是 HtmlUnit 的新手,我不知道如何获取 [...] 中的文本

我的 html 文件的一部分:

<ul ......somethin....>
<li data-role="list-divider" role="heading" style="font-size:16px;" class="ui-bar-f">
INFORMATION_LINE_1
</li>

<li data-theme="d" class="ui-li ui-btn-icon-right ui-btn-up-d ui-odd-match-column ">
<div class="ui-btn-inner ui-li">
<div class="">
<div class="ui-btn-text">
<a href="/x/cxntay/13113/ndzvsssl/g1" class=" ui-link-inherit ui-link-hover">
<h3 class="ui-li-heading">
<span class="xheader">INFORMATION_LINE_2</span>
<span class="label live">INFORMATION_LINE_3</span>
</h3>
<div class="ui-live-scores">
<span class="team1-scores">
<span class="ui-team-name">INFORMATION_LINE_4</span>
<span style="font-weight:bold">INFORMATION_LINE_5</span>
</span>
<span>INFORMATION_LINE_6</span>
</div>
</a>
</div>
</div>
</div>
</li>
</ul>

现在,我想检索这些标签之间的“INFORMATION_LINE_X”(1,2...6)。

这是我尝试过的:

List<HtmlUnorderedList> ls = (List<HtmlUnorderedList>) page.getByXPath("/ul");
List<DomNode> dls = ls.get(0).getChildNodes();
System.out.println(dls.get(0).getFirstByXPath("//li[@data-role='list-divider']/text()");

我刚刚尝试获取 INFORMATION_LINE_1但它打印了null。我需要获取所有 INFORMATION_LINES。

最佳答案

最好只使用 XPath,而不是与 HTMLUnit 方法混合使用。像这样的东西应该可以让你获得第一条信息:

HtmlElement e = page.getFirstByXPath("//li[@data-role='list-divider']");
System.out.println(e.asText());

为了获取其他信息行,您应该遵循相同的方法,但更改 XPath 字符串。

请记住,您应该始终通过打印 page.asXml() 的输出来查看代码来调试页面。如果您使用真正的浏览器,您实际上看到的内容与 HTMLUnit 看到的内容并不完全相同。您可能会发现差异,尤其是在页面执行 JavaScript 的情况下。

关于java - 如何在 HTMLUnit 中检索标签内的原子值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767636/

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