繁体   English   中英

使用纯Java从HTML文档中使用xpath提取内容

[英]Extract content using xpath from an HTML doc using pure Java

我想使用Java使用xpath从HTML提取内容。 在ruby中,我可以使用nokogiri做到这一点,如下所示。

xpath = '/html/body/div/div[2]/div[2]/div/div[2]/div[3]/p'  
doc = Nokogiri::HTML(open('test_001_html64.html'))  
doc.xpath().each do |link|  
puts link.content  
end  

我想用纯Java来做。 我看了看Jsoup,但是找不到任何使用xpath做到这一点的文档或示例。 有人可以提出建议吗?

谢谢

使用JAXP (捆绑在Java中)的方法如下: JAXP手册

您可以将HtmlUnit用于该任务。

这是一个简单的例子:

final WebClient webClient = new WebClient();
final HtmlPage startPage = webClient.getPage("http://www.google.com/");
List<DomNode> nodes = page.getByXPath("/html/body/div/div[2]/div[2]/div/div[2]/div[3]/p");
for (DomNode node : nodes) {
    System.out.println(node.getNodeName());
}

您可以在jsoup中轻松地做到这一点。

Document doc = Jsoup.connect("test_001_html64.html").get();
Elements info = doc.getElementsByTag("html");
//iterate recursively to the desired location in the dom tree.

为了更快地解析,您可以使用特定的标签/ ID。

jsoup的文档(jsoup.org/apidocs)也存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM