0

在 nutch 中,我正在实现一个插件,它将获取网页的内容并以特殊方式处理它们。

我的主要问题是我想将网页转换为纯文本以便能够处理,我读到 tika 工具包可以做到这一点

所以,我发现这段代码使用 tika 来解析 url,我把它写在 filter 方法下

 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)

4

2 回答 2

1

由于 1.1 版 Nutch 包含一个Tika 插件(另请参阅NUTCH-766),它应该可以满足您的需求。我不知道是否有更全面的文档可用。您可能想向Nutch 用户邮件列表询问更多详细信息(或者 SO 上的某个人可以填写)。

于 2012-02-07T16:19:33.717 回答
0

正如 Jukka Zitting 所说,Tika已经在 nutch 中发挥了作用。在您粘贴的代码中,您没有将metadataand设置ParseStatus为任何 nutch 特定数据结构的位置。所以你没有看到ParseStatus相应的。

于 2012-04-03T15:59:39.117 回答