6

我是 HtmlUnit 的新手,我什至不确定它是否适合我的项目。我正在尝试解析一个网站并从中提取我需要的值。我需要从中获取值“07:05”,

<span class="tim tim-dep">07:05</span>

我知道我可以使用 getTextContent() 来提取值,但我不知道如何选择特定的跨度。我使用 getElementById 来查找

<div>

这个表达式所属的标签,但是当我得到那个 div 的文本内容时,我得到了一整行带有很多不必要数据的文本。有人可以告诉我如何选择这个表达式,可能使用类名吗?

4

2 回答 2

9

您需要浏览一个页面并与之交互,如下所示:

final WebClient web = new HtmlUnit();
final HtmlPage page = web.getPage("http://www.whateveryouwant.com.br");

通过标记名获取元素,并对其进行迭代:

final List<DomElement> spans = page.getElementTagName("span");
for (DomElement element : spans) {
    if (element.getAttribute("class").equals("tim tim-dep")) {
        return element.getNodeValue();
    }
}

或者只使用 XPath:

// Not sure what getFirstByXPath return
DomElement element = page.getFirstByXPath("//span[@class='tim tim-dep']");
final String text = element.getNodeValue();
于 2013-05-04T21:44:04.860 回答
1

here you go..

DomElement element = page.getFirstByXPath("//span[@class='tim tim-dep']");
String text = element.getTextContent();
于 2014-07-27T18:59:24.070 回答