11

我在浏览器中加载了一个网页(即我可以访问它的 DOM 和元素定位),我想找到可能包含最多内容的块元素(或这些元素的排序列表)(如一个连续的文本块)。目标是排除菜单、页眉、页脚等内容。

4

4 回答 4

3

这是我个人最喜欢的:VIPS: a Vision-based Page Segmentation Algorithm

于 2010-01-05T01:10:39.363 回答
2

首先,如果您需要解析网页,我会使用HTMLAgilityPack将其转换为 XML。它将加速一切,并使您能够使用简单的 XPath 直接进入 BODY。

之后,您必须在所有 div 上运行(您可以从敏捷包中获取列表中的所有 DIV 元素),并获取您想要的任何内容。

于 2010-01-04T12:24:56.937 回答
1

有一种简单的技术可以做到这一点,它基于分析 HTML 的“嘈杂”程度,即标记与通过 html 页面显示的文本的比率是多少。 从任意 HTML 中提取有用文本的简单方法描述了这个 tex,并给出了一些 python 代码来说明。

参照。还有HTML::ContentExtractor Perl 模块,它实现了这个想法。如果你想使用它,首先清理 html 是有意义的,使用 beautifulsoup。

于 2010-01-07T11:55:42.940 回答
1

我会推荐 Vit Baisa 关于Web Content Cleaning的论文,我想他也有一些代码,但我找不到它的链接。在自然语言处理 LingPipe 博客上也有关于同样问题的讨论。

于 2010-01-11T14:14:39.937 回答