首页 > 解决方案 > 如何使用 Apache Tika(和 XPath)解析随机 HTML 页面

问题描述

我是 Tika 的新手,很难理解它。我想要实现的是提取 HTML 页面(可以是任何网页)的链接的 href。

对于试用版,我只是尝试使用 XPath 来提取链接(甚至只是第一个)。但我永远无法做到正确,处理程序总是空的。(在本例中,我删除了XHTML:namspace 位,否则我会遇到 SAX 错误)。

代码示例如下。非常感谢您的帮助:)

XPathParser xhtmlParser = new XPathParser ("xhtml", XHTMLContentHandler.XHTML);
org.apache.tika.sax.xpath.Matcher anchorLinkContentMatcher = xhtmlParser.parse("//body//a");
ContentHandler handler = new MatchingContentHandler(
    new ToXMLContentHandler(), anchorLinkContentMatcher);

HtmlParser parser = new HtmlParser();
Metadata metadata = new Metadata();
ParseContext pcontext      = new ParseContext();
try {
    parser.parse(urlContentStream, handler, metadata,pcontext);
    System.out.println(handler);
}
catch (Exception e)
{
....
}

标签: javahtmlapache-tika

解决方案


我找到了答案(至少要让某些东西起作用,即使还不是最终版本,我也从处理程序那里得到了一些东西)。答案在java tika 如何将 html 转换为保留特定元素的纯文本


推荐阅读