java - 更改 tika-config.xml 中的解析器会导致 "Unable to load org.apache.tika.parser.DefaultParser"

标签 java parsing nutch apache-tika

我正在尝试在 Nutch 中启用 Tika 的 BoilerpipeContentHandler 解析器,以从网页中提取文章文本。为此,我配置了 tika-config.xml 以排除 HTMLParser 并激活 BoilerpipeContentHandler 解析器,如下所示:

<properties>
     <service-loader initializableProblemHandler="ignore" loadErrorHandler="WARN" />
 <parsers>
    <parser class="org.apache.tika.parser.DefaultParser">
      <mime-exclude>text/html</mime-exclude>
      <parser-exclude class="org.apache.tika.parser.html.HtmlParser"/>
    </parser>

 <!-- Use a different parser for text/html -->
    <parser class="org.apache.tika.parser.html.BoilerpipeContentHandler">
      <mime>text/html</mime>
    </parser>
  </parsers>
</properties>

当我通过运行命令测试此配置时:

bin/nutch org.apache.nutch.parse.ParserChecker

输出包括:

Dec 12, 2019 5:11:40 PM org.apache.tika.config.LoadErrorHandler$2 handleLoadError
WARNING: Unable to load org.apache.tika.parser.DefaultParser
java.lang.ClassNotFoundException: org.apache.tika.parser.html.HtmlParser
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

Dec 12, 2019 5:11:40 PM org.apache.tika.config.LoadErrorHandler$2 handleLoadError
WARNING: Unable to load org.apache.tika.parser.html.BoilerpipeContentHandler
java.lang.ClassNotFoundException: org.apache.tika.parser.html.BoilerpipeContentHandler
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)

我已经正确设置了类路径,所以我无法弄清楚为什么没有找到这两个解析器类。我想知道 Nutch 或 Tika 是否使用不同的类路径?或者我的 tika-config.xml 可能有明显的问题。

我非常感谢您的任何想法。

最佳答案

我将重点关注您的最终目标:将样板提取器与 Nutch 结合使用。 Nutch 已经从 Nutch 本身内部提供了对样板提取器的支持,无需更改 tika-config.xml

您需要将 nutch-site.xml 中的 tika.extractor 属性设置为 boilerpipe。默认情况下,Nutch 将使用 ArticleExtractor 提取器。

您可以查看https://github.com/apache/nutch/blob/master/conf/nutch-default.xml#L1645-L1677了解一些公开的其他配置选项。

关于java - 更改 tika-config.xml 中的解析器会导致 "Unable to load org.apache.tika.parser.DefaultParser",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59298736/

相关文章:

c++ - 是否有 fread() 等效项可用于处理 vector <char> 或 char 数组?

c++ - 使用 C/C++ 解析 HTTP URL

Java:删除 csv 中以 -- 开头的文本

java - 参数化 JUnit 测试是否正确使用 `mvn test` ?

java - 如何从不同的类访问非静态变量和方法

java - 从内存角度来看 String[]/List<String> 哪个更好

hadoop - Nutch 和 HBase 配置错误

solr - Nutch和Solr的最新兼容版本

solr - 有关 Nutch、Hadoop、Solr、MapReduce 和 Mahout 的信息

java - Wicket - 将工具提示添加到 PropertyColumn 中的每个单元格