【发布时间】:2011-01-01 05:41:11
【问题描述】:
我在浏览器中加载了一个网页(即我可以访问它的 DOM 和元素定位),我想找到可能包含最多内容的块元素(或这些元素的排序列表) (如在连续的文本块中)。目标是排除菜单、页眉、页脚等内容。
【问题讨论】:
标签: algorithm webpage html-content-extraction
我在浏览器中加载了一个网页(即我可以访问它的 DOM 和元素定位),我想找到可能包含最多内容的块元素(或这些元素的排序列表) (如在连续的文本块中)。目标是排除菜单、页眉、页脚等内容。
【问题讨论】:
标签: algorithm webpage html-content-extraction
【讨论】:
首先,如果您需要解析网页,我会使用HTMLAgilityPack 将其转换为 XML。它将加速一切,并使您能够使用简单的 XPath 直接进入 BODY。
之后,您必须在所有 div 上运行(您可以从敏捷包中获取列表中的所有 DIV 元素),然后获取您想要的任何内容。
【讨论】:
有一种简单的技术可以做到这一点,基于分析 HTML 的“嘈杂”程度,即标记与通过 html 页面显示的文本的比率是多少。 The Easy Way to Extract Useful Text from Arbitrary HTML描述了这个tex,给出了一些python代码来说明。
参照。还有HTML::ContentExtractor Perl 模块,它实现了这个想法。如果你想使用它,首先清理 html 是有意义的,使用 beautifulsoup。
【讨论】:
我会推荐 Vit Baisa 在Web Content Cleaning 上的论文,我想他也有一些代码,但我找不到它的链接。在自然语言处理 LingPipe 博客上也有一个 discussion 的相同问题。
【讨论】: