3

我目前正在尝试为 nutch 1.0 编写一个自定义插件。这个插件应该解析 html 数据并从文档中过滤掉相关信息。我有一个基本插件工作,它扩展了 HtmlParserResult 对象,并且每次我进行解析时都会执行。

我目前面临两个问题:

  1. 我不太了解 nutch 解析的工作流程/管道。我在 nutch 网站上找不到有关此的信息。

  2. 我不明白 DOM 解析是如何完成的,我看到 Nutch 有一组 DOM 对象,并且 HtmlParser 插件进行了一些 DOM 解析,但我仍然没有弄清楚如何最好地完成。

4

1 回答 1

1

我记得为过去的工作制作了一个 nutch HTML 解析插件。我无法了解我是如何做到的,但这里是基本点。我们想做以下事情:

  1. 解析 HTML 页面,但有条件地使用 H1 标签或具有特定类的标签作为页面标题,而不是实际的 //html/head/title
  2. 有时页面上有一些特殊的数据(即选择了哪个选项卡,这将告诉我们这是零售客户、银行客户还是公司客户)。
  3. 等等

我所做的只是找到 html-parse 插件类(我很难找到实际的类名),然后扩展它。然后重写解析函数。新函数应该调用该super函数,然后可以遍历 DOM 树以查找您要查找的特殊数据。在我的情况下,我会寻找一个更好的标题,然后覆盖该super函数提出的值。

对于你的第二个问题,我不清楚你在问什么。我想您是在问当 DOM 格式不正确时会发生什么?我只是挖掘 nutch 代码(http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.nutch/nutch/1.3/)并找出解析是如何完成的(我是确保他们使用图书馆来做到这一点)。这应该告诉你更多关于事情是否贪婪,或者什么。

如果您有任何问题,请大声喊叫。

于 2011-09-26T17:05:54.810 回答