在 nutch 抓取的内容中添加分隔符

Adding a delimiter in nutch crawled content

我正在尝试从已抓取的内容中获取特定信息。由于 nutch 将网站的整个文本全部转储在一起,因此我很难获得特定内容。我想为我在弹性搜索中索引的爬取文本内容添加一个分隔符。

例如从 http://example.com/ 抓取数据时,elasticsearch 中索引的数据是


Example Domain Example Domain 这个域被建立用于文档中的说明性示例。您可以在示例中使用此域,而无需事先协调或请求许可。更多信息...

我希望它采用

格式

示例域 |示例域 |建立此域用于文档中的说明性示例。您可以在示例中使用此域,而无需事先协调或请求许可。 |更多信息...

我们可以在 nutch 配置中的某处定义这个分隔符吗?

基本上您想要的是使用不同的字段来存储网页的不同部分,例如在电子商务网站中,您希望产品页面在不同的字段中包含价格、评级和描述。在 Nutch 1.x 中,这是通过编写一个自定义插件来完成的,该插件对获取的内容进行解析。

您的插件需要实现 HtmlParseFilter interface and the IndexingFilter,然后在 Solr/ES 中定义 fields/mapping。

如果您要编写自定义插件,请检查允许您提取 hN 标签的 headings 插件。

另一种可能性是查看 https://issues.apache.org/jira/browse/NUTCH-1870,它可以让您指定要提取的特定 xpath 表达式的内容。