我可以使用哪些算法来识别网页上的内容?

11

我在浏览器中加载了一个网页(即其DOM和元素定位对我都是可访问的),现在我想找到包含最多内容(如连续文本块)的块级元素(或排序列表)。目标是排除类似菜单、头部、页脚等内容。

4个回答

3

2

首先,如果你需要解析一个网页,我建议使用HTMLAgilityPack将其转换为XML格式。这样可以提高速度,并且可以使用简单的XPath直接定位到BODY。

之后,你需要遍历所有div(你可以从敏捷包中获取所有DIV元素的列表),并获取你需要的内容。


我更感兴趣的是可能用来评判单个候选节点的标准种类。 - VoY

1

有一种基于分析HTML的“噪音”(即HTML页面中标记与显示文本之比)的简单技术可以实现此功能。从任意HTML中提取有用文本的简便方法介绍了这种技术,并提供了一些Python代码进行说明。

另外,HTML::ContentExtractor Perl模块也实现了这个想法。如果您想使用它,最好先清理HTML,可以使用beautifulsoup。


1
我推荐阅读维特·拜萨的关于网页内容清理的论文,我记得他还有一些代码,但是我找不到相关链接。在自然语言处理LingPipe博客上也有一个关于同样问题的讨论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接