基于DOM树的html文档的内容提取

 
读DOM-based Content Extration of HTML Document

  网页中,在文章主体的周围,经常包含一些杂乱信息,如广告、非必要的图像和链接等。从网页中提取有用的和相关的内容有很多应用,如移动电话、PDA浏览器和提取文章摘要等。常用的移除杂乱信息或者使内容更加可读的方法包括改变文字的大小、移除HTML中某些数据单元,如图像。从html网页中抽取内容的方法可以应用于公开可用的网络代理。
   进行网页内容抽取时,首先将网页通过HTML解析器,将其解析为一颗DOM树,可以使用openXML作为HTML解析器,经过处理后,DOM文档可以在用户端作为一个HTML网页显示。这种方法现在已经实现结构化分析和结构化压缩,由Rahman、Buyukkokten和Kaasinen实现。DOM树是分层的,并且可以按照段落意义分析。文中使用一系列不同的过滤技术优化HTML,移除和优化一些特定的节点,最终只留下主体内容。


    根据粒度可分为两种过滤器。一种过滤器只是忽略标签或者忽略标签特定的属性。这种过滤器可以很快把图像、链接、脚本和其它一些冗余元素从网页去除。这种过滤器的处理过程和Kaasinen提出的HTML到WML的转换很像。另一种过滤器相对来说比较复杂并且算法性较强,与HTML到WML的转换相比,它可以提供更高水平的内容抽取。文中对这种过滤器做了扩展,添加了广告移除器、链接移除器和空表移除器以及对被移除的链接的保存。
    广告移除器使用一种有效的技术实现广告的移除。将网页解析成DOM树后,值保留属性“src”和“href”,以确保可以链接到的服务器。如果链接地址在常规广告服务器地址列表中,则将DOM树中包含此链接的节点移除,以此来去掉广告链接。
    链接移除器使用一种过滤技术移除所有的链接列表,列表中链接单词的数量与非链接单词数量的比大于一个特定的门限值时将链接移除。当DOM过滤器遇到一个表格单元,链接移除器计算链接单词和非链接单词的数量。非链接单词的数量的计算方法为:(不包含在链接中的字符数 /每个单词的平均字符数),初始值为5.如果计算得到的值大于用户预先设定的移除比率,则当前表格单元的内容需要移除。这种方法在移除长链接列表方面是很成功的。
空表移除器移除那些不包含任何完整内容信息的表格。由用户确定哪些HTML标签可以被认为是一个完整内容,表格中需要有多少字母才可以作为一个完整内容。空表移除器在表格解析后确定一个表格是否可以作为一个完整内容。这个算法在移除前面包含少量不重要信息的浮在左侧的表格方面很有效。
前面的移除器从页面移除空内容,但是需要保存链接,移除链接的保存器将被移除的链接信息添加在文档的最后以保证页面可以被浏览。在DOM树解析完毕,被移除的链接添加在页面的底端。使用这种方法,前面移除的任何链接仍然是可达的。
当整个DOM树解析和更新完毕,DOM树可以以HTML或者格式简单的text显示。text的显示中,移除了所有的标签,只保存了标签内的内容,并忽略了大部分的空格。最终得到的结果是一个文本文档,只包含网页的主要内容,如摘要、发言稿或其他信息等。
使用上述方法进行网页内容解析的时间复杂度为:对于复杂大量的表格复杂度为O(N^2),一般情况下是O(N),N为DOM树节点的数目。

猜你喜欢

转载自y-x.iteye.com/blog/1337363
今日推荐