在nutch中,我正在实现一个插件,它将获取网页内容并以特殊方式处理它们。
我的主要问题是我想将网页转换为plainText以便能够处理,我读到tika工具包可以做到这一点
所以,我发现这段代码使用tika解析网址,我在过滤方法
下编写 public ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc)
{
byte[] raw = content.getContent();
ContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
Parser parser = new AutoDetectParser();
parser.parse(new ByteArrayInputStream(raw), handler, metadata, new ParseContext());
String plainText = handler.toString();
LOG.info("Mime: " + metadata.get(Metadata.CONTENT_TYPE));
LOG.info("content: " + handler.toString());
}
metadata.get(Metadata.CONTENT_TYPE)的结果是text / html
但是handler.toString()是空的!
更新: 我也尝试在解析器方法之后使用这一行
LOG.info ("Status : "+ new ParseStatus().toString());
我得到了这个结果: 状态:未分析(0,0)
答案 0 :(得分:1)
从版本1.1开始,Nutch包含一个Tika plugin(另请参阅NUTCH-766),它可以满足您的需求。我不知道是否有更全面的文档可用。您可能想要询问Nutch users邮件列表以获取更多详细信息(或者SO上的某人可以填写)。
答案 1 :(得分:0)
正如Jukka Zitting所说,Tika
已经在荷兰被利用了。在您粘贴的代码中,您没有将metadata
和ParseStatus
设置为任何nutch特定数据结构的位置。所以你没有相应地看到ParseStatus
。