我在浏览器中加载了一个网页(即其DOM和元素定位对我都是可访问的),现在我想找到包含最多内容(如连续文本块)的块级元素(或排序列表)。目标是排除类似菜单、头部、页脚等内容。
我在浏览器中加载了一个网页(即其DOM和元素定位对我都是可访问的),现在我想找到包含最多内容(如连续文本块)的块级元素(或排序列表)。目标是排除类似菜单、头部、页脚等内容。
首先,如果你需要解析一个网页,我建议使用HTMLAgilityPack将其转换为XML格式。这样可以提高速度,并且可以使用简单的XPath直接定位到BODY。
之后,你需要遍历所有div(你可以从敏捷包中获取所有DIV元素的列表),并获取你需要的内容。
有一种基于分析HTML的“噪音”(即HTML页面中标记与显示文本之比)的简单技术可以实现此功能。从任意HTML中提取有用文本的简便方法介绍了这种技术,并提供了一些Python代码进行说明。
另外,HTML::ContentExtractor Perl模块也实现了这个想法。如果您想使用它,最好先清理HTML,可以使用beautifulsoup。