2

我正在寻找一种方法来从带有大量链接(可能还有文本)的网页中提取用于导航的菜单。我感兴趣的页面是非常简单、有效的 XHTML,并且可以安全地假设菜单位于页面的开头或结尾。但是到目前为止,我一直没有找到一个好的、通用的方法来找到它的确切位置——我希望你能帮助我解决这个问题。

快速说明:我不是在寻找诸如可读性之类的东西 - 找到主要文章并删除其他所有内容,而是寻找专门找到菜单的东西。此外,“找到一个有很多链接作为继任者的元素”的幼稚方法也不能很好地工作——因为我倾向于包含相当长的链接列表的页面。

编辑:我需要菜单来获取其中链接的页面的内容(我为信息提取项目构建了一个网络抓取工具)。我使用的一些示例页面:

4

2 回答 2

1

我将计算{链接中子元素文本的长度之和}与{链接中子元素文本长度之和}比率。如果该比率高于某个阈值,并且链接的绝对数量高于某个阈值,那么您可以假设该元素包含一个菜单。

如果这还不够,您必须渲染页面(例如在浏览器中,或无头使用 webkit 库)以获得渲染元素在页面上的位置。

于 2011-05-01T02:56:04.733 回答
0

正如 Drag0nR3b0rn 提到的,您应该使用链接/非链接文本比率 + 常用菜单词作为特征和手动/训练的决策树。对于爬行,我会推荐 HtmlUnit

于 2011-05-02T07:05:56.530 回答