String html = Jsoup.connect(url).timeout(1000*1000).get().html();
Document doc = Jsoup.parse(html);
Elements H2 = doc.select("div h2");
for (Element e: H2) {
//get absolute path of element e
}
似乎没有办法仅使用 Jsoup 来做到这一点。如果没有,任何其他java包帮助实现它?
Jsoup 仍然不支持直接从元素获取 Xpath。
仍有待实施的建议。
以下链接说明了如何在 jsoup 中应用 XPATH
在这篇文章的最后,作者有自己的评论:
“如果您想从 HTML 中提取特定数据,那么 Jsoup 就是您的最佳选择。”
没有元素的“绝对”路径之类的东西。有许多不同的路径可以选择一个元素。人们有时要求的此类路径的示例是:
/a/b/c/d
/a[1]/b[2]/c[3]/d[4]
/*[1]/*[2]/*[3]/*[4]
前两种情况的问题是,如果涉及命名空间,它们就不起作用。第三条路径解决了这个问题,但这条路径并不像人们有时想要的那样提供丰富的信息。如果您想要一个既能提供信息又独立于命名空间上下文的路径,那么您需要使用形式谓词的东西*[local-name()='a' and namespace-uri()='......']
。
命名空间的困难意味着您找不到许多返回元素路径的库例程。