如何使用HtmlUnit在特定范围之间获取文本

时间:2013-05-04 14:28:11

标签: html-parsing html htmlunit

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

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

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

<div>

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

2 个答案:

答案 0 :(得分:8)

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

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();

答案 1 :(得分:0)

在这里你去..

DomElement element = page.getFirstByXPath("//span[@class='tim tim-dep']");
String text = element.getTextContent();