我记得为过去的工作制作了一个 nutch HTML 解析插件。我无法了解我是如何做到的,但这里是基本点。我们想做以下事情:
- 解析 HTML 页面,但有条件地使用 H1 标签或具有特定类的标签作为页面标题,而不是实际的 //html/head/title
- 有时页面上有一些特殊的数据(即选择了哪个选项卡,这将告诉我们这是零售客户、银行客户还是公司客户)。
- 等等
我所做的只是找到 html-parse 插件类(我很难找到实际的类名),然后扩展它。然后重写解析函数。新函数应该调用该super
函数,然后可以遍历 DOM 树以查找您要查找的特殊数据。在我的情况下,我会寻找一个更好的标题,然后覆盖该super
函数提出的值。
对于你的第二个问题,我不清楚你在问什么。我想您是在问当 DOM 格式不正确时会发生什么?我只是挖掘 nutch 代码(http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.nutch/nutch/1.3/)并找出解析是如何完成的(我是确保他们使用图书馆来做到这一点)。这应该告诉你更多关于事情是否贪婪,或者什么。
如果您有任何问题,请大声喊叫。