java - 如何使用 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)
{
....
}
解决方案
我找到了答案(至少要让某些东西起作用,即使还不是最终版本,我也从处理程序那里得到了一些东西)。答案在java tika 如何将 html 转换为保留特定元素的纯文本
推荐阅读
- terminal - 使用 gotty cli 更改用户
- c# - 用 NewtonSoft 替换 Json 属性
- javascript - Vue.js 项目 - 使用 CSS 模块构建模块失败
- php - 使用 AWS 在 Bitnami Lamp App 上运行 PHP 代码在 MYSQL 中存储数据时出现问题
- oracle-apex - APEX Oracle 包返回数据集合
- c++ - 哪个班级更好,为什么
- gitlab-ci - 为什么 GitLab docker-windows 执行器这么慢?
- angular - 在选择语句更改期间获取多个插值 - Angular & ngFor
- opencv - 如何在python中使用opencv计算车辆?
- elasticsearch - 短语中的弹性搜索通配符