2013-05-04 84 views
4

我是HtmlUnit的新手,我甚至不確定它是否是我的項目的正確工具。 我試圖解析一個網站,並從中提取我需要的值。我需要得到的值「07:05」從此,如何獲取特定跨度與HtmlUnit之間的文本

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

我知道我可以使用getTextContent()用於提取的價值,但我不知道我怎麼能選擇一個特定的範圍。我用的getElementById查找,這表達屬於

<div> 

標籤,但是當我拿到div的文本內容,我得到的文本的一整行有很多不必要的數據。有人能告訴我如何選擇這個表達式,可能使用類名嗎?

回答

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

//由於元素的節點值爲null,您可能希望通過跟隨來獲取子節點(文本節點)的節點值。 。element.getChildNodes()得到(0).getNodeValue(); 或 element.getTextContent(); – 2015-08-10 21:36:22

0

在這裏你去..

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

@brnfd的答案之後的一年,你只發布了一部分。 – 2015-12-04 12:48:03

相關問題