我試圖使用以下XPath使用失敗的HtmlUnit
html/body/table/tbody/tr[2]/td/table/tbody/tr[4]/td/table/tbody/tr[1]/td[1]/table/tbody/tr/td/table/tbody/tr/td[2]/table[3]/tbody/tr[1]/td/h1
從這個馬耳他新聞頁面
提取標題提取由XPath的內容(是不是漂亮,但這個Xpath是由Chrome生成的,因爲缺少元素ID)。
我使用Java中的HTMLUnit以編程方式提取標題。這是代碼。我使用相同的代碼提取了新聞內容和文章日期(顯然是用不同的xpath)。
public static void main (String[] args) {
WebClient webClient = new WebClient();
HtmlPage page = null;
try {
page = webClient.getPage("http://www.maltarightnow.com/?module=news&at=Inawgurat+%26%23289%3Bnien+%26%23289%3Bdid+f%27Marsalforn&t=a&aid=99839603&cid=19");
} catch (FailingHttpStatusCodeException | IOException e) {
}
String text = ((DomElement)page.getFirstByXPath("html/body/table/tbody/tr[2]/td/table/tbody/tr[4]/td/table/tbody/tr[1]/td[1]/table/tbody/tr/td/table/tbody/tr/td[2]/table[3]/tbody/tr[1]/td/h1")).asText();
System.out.println(text);
}
但是它給了提到的XPath空指針在
((DomElement)page.getFirstByXPath("html/body/table/tbody/tr[2]/td/table/tbody/tr[4]/td/table/tbody/tr[1]/td[1]/table/tbody/tr/td/table/tbody/tr/td[2]/table[3]/tbody/tr[1]/td/h1")).asText();
的一個DOMElement不被發現,我敢肯定它的存在,Chrome瀏覽器創建的XPath畢竟。
這可能是什麼原因造成的?
在此先感謝
謝謝你的輸出創建。其中工作的Xpath實際上是/ html/body/table/tbody/tr [2]/td/table/tbody/tr [4]/td/table/tbody/tr [1]/td [1]/table/tbody/TR/TD /表/ tbody的/ TR/TD [2] /表/表[2]/tbody的/ TR [1]/TD/H1。最後,不是table [3],而是table/table [2]。沒有線索爲什麼Chrome首先給了我第一個Xpath!再次感謝! – 2012-08-13 07:36:23