如何使用Nutch解析和检索图像

时间:2017-03-06 08:42:25

标签: parsing solr html-parsing nutch

在StackOverflow上学习了很多文章和一些问题之后,我知道我需要为此目的编写一个自定义的解析器插件,我也知道如何做到这一点,但我仍然坚持如何继续。

事实上,我对系统的“流程图”感到困惑,这可能需要对Nutch爬行和解析机制进行过多的深入研究。从哪儿开始?自定义HTML解析过程,然后解析相关页面上的img标签,最后使用JSoup等工具完成整个过程。

例如,我必须抓取网页并收集某些特定品牌商品的所有图片。图像搜索将通过文件名和周围文本进行(这使得有必要包括文本解析)。

系统流程图应如何开始为自定义插件编写?

我正在使用Nutch 1.12和Solr 6.3集成......

1 个答案:

答案 0 :(得分:4)

首先我要说的是,你要做的事情不是一件容易的事,但让我们一步一步走:

  1. 假设在抓取开始之前您没有图像的所有网址,您需要抓取整个网络,但您只需要将图像保留在索引中(以及所有关联的元数据) 。对于此特定问题,您可以使用mimetype-plugin其中一个示例配置执行此操作的简单版本(阻止所有内容并仅显示图像)。

  2. 您需要提取有关图像的元数据(大小,颜色等),好消息是Tika已经解析图像并检测到大量元数据。并且您需要编写自定义解析过滤器以提取所需的所有其他数据。

  3. 此外,您还需要提取图片周围的文字,这在HtmlParseFilter中并不是很难,但棘手的部分是您如何将与此内容联系起来图像元数据。实现此目的的一种方法是编写自定义ScoringPlugin以将原始HTML页面(文本所在的位置)的数据共享到图像本身的实际NutchDocument(请记住,这是处理过的)在不同的Nutch步骤)。另一个机会是将此索引为两个单独的文档(图像元数据+从HTML中提取的元数据),并在应用程序的查询端(例如Web应用程序)执行组/连接。

  4. 一些额外的注释,这个特殊的用例目前并不是非常简单的实现Nutch的开箱即用功能,但确实是可行的。我按照之前的方法构建了一个基于Nutch和Solr的图像搜索引擎。