我在浏览器中加载了一个网页(即我可以访问它的 DOM 和元素定位),我想找到可能包含最多内容的块元素(或这些元素的排序列表)(如一个连续的文本块)。目标是排除菜单、页眉、页脚等内容。
问问题
1708 次
4 回答
3
于 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 回答