基于div位置的网页正文抽取方法和装置的制作方法

文档序号:6336452阅读:231来源:国知局
专利名称:基于div位置的网页正文抽取方法和装置的制作方法
技术领域
本发明涉及信息采集与处理技术领域,特别地,涉及一种基于DIV(Divisi0n)位置的网页正文抽取方法和装置。
背景技术
随着hternet及其技术的迅速发展,在Web上已经形成不计其数以HTML(Hyper Text Mark-up Language)形式存在的网页信息。但是,Web页面通常含有很多用户并不关心的信息,例如,广告、导航链接等噪音信息,它们分布在网页正文的四周,有的甚至嵌入到网页正文中。这些噪音信息给信息搜索、数据挖掘、机器翻译和文本摘要等信息研究带来诸多困难。因此,如何准确地从Web网页中提取正文信息,已经成为目前噬待解决的技术问题。

发明内容
本发明要解决的一个技术问题是提供一种基于DIV位置的网页正文抽取方法和装置,能够去除HTML网页中的噪音信息以准确地从HTML网页中提取正文信息。根据本发明的一方面,提出了一种基于DIV位置的网页正文抽取方法,包括利用 HTML页面在DOM (Document Object Model)树中的DIV块信息重新构建DIV块;保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块; 对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;对包含网页正文的DIV块进行内容提取,以获取网页正文。根据本发明抽取方法的一个实施例,在对包含网页正文的DIV块进行内容提取之前,该方法还包括如果原子DIV块与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方,则确定与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块。根据本发明抽取方法的另一实施例,利用HTML页面在DOM树中的DIV块信息重新构建DIV块的步骤包括从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;为获取的非DIV代码段补齐DIV 块开始标签和DIV块结束标签。根据本发明抽取方法的又一实施例,保留重新构建DIV块中的原子DIV块的步骤包括在重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;根据计算出的层次值判断每个DIV块是否为原子DIV块;去除重新构建DIV块中的非原子DIV块。根据本发明抽取方法的再一实施例,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块的步骤包括从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的 DIV块作为包含网页正文的DIV块。根据本发明抽取方法的再一实施例,在重新构建DIV块之前,该方法还包括过滤HTML页面中的Javascript代码和冗余标签。根据本发明的另一方面,还提出了一种基于DIV位置的网页正文抽取装置,包括 DIV块重构模块,用于利用HTML页面在DOM树中的DIV块信息重新构建DIV块;原子DIV 块保留模块,与DIV块重构模块相连,用于保留重新构建DIV块中的原子DIV块,原子DIV 块为除其本身之外不包含任何其他DIV块的DIV块;网页正文DIV块选取模块,与原子DIV 块保留模块相连,用于对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;网页正文提取模块,与网页正文DIV块选取模块相连,用于对包含网页正文的 DIV块进行内容提取,以获取网页正文。根据本发明抽取装置的一个实施例,该装置还包括网页正文DIV块确定模块,分别与网页正文DIV块选取模块和网页正文提取模块相连,用于如果原子DIV块与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方,则确定与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV 块为包含网页正文的DIV块。根据本发明抽取装置的另一实施例,DIV块重构模块包括第一非DIV代码段获取单元,用于从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;第二非DIV代码段获取单元,用于从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;标签添加单元,分别与第一非DIV代码段获取单元和第二非DIV代码段获取单元相连,用于为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签。根据本发明抽取装置的又一实施例,原子DIV块保留模块包括层次值计算单元, 用于在重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;原子DIV块判断单元,与层次值计算单元相连,用于根据计算出的层次值判断每个DIV块是否为原子DIV 块;非原子DIV块去除单元,与原子DIV块判断单元相连,用于去除重新构建DIV块中的非原子DIV块。根据本发明抽取装置的再一实施例,网页正文DIV块选取模块包括第一查找单元,用于从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;第二查找单元, 与第一查找单元相连,用于从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为包含网页正文的DIV块。根据本发明抽取装置的再一实施例,该装置还包括无用信息过滤模块,与DIV块重构模块相连,用于过滤HTML页面中的Javascript代码和冗余标签。本发明提供的基于DIV位置的网页正文抽取方法和装置,利用DOM树中的DIV块信息重新构建DIV块,并且保留原子DIV块,以防止同一 DIV块被重复分析,从而提高了分析效率。同时,根据每个原子DIV块的参数来选取包含网页正文的DIV块,以有效去除HTML 网页中的噪音信息,在很大程度上提高了从HTML网页中获取正文信息的准确度。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分。在附图中图1是本发明网页正文抽取方法的一个实施例的流程示意图。
图2是本发明实施例重新构建DIV块的示意图。图3是本发明实施例保留原子DIV块的示意图。图4是本发明实施例计算预定宽度的示意图。图5是本发明网页正文抽取方法的另一实施例的流程示意图。图6是本发明网页正文抽取方法的又一实施例的流程示意图。图7是本发明网页正文抽取方法的再一实施例的流程示意图。图8是本发明网页正文抽取方法的再一实施例的流程示意图。图9是本发明抽取装置的一个实施例的结构示意图。图10是本发明抽取装置的另一实施例的结构示意图。图11是本发明抽取装置的又一实施例的结构示意图。图12是本发明抽取装置的再一实施例的结构示意图。图13是本发明抽取装置的再一实施例的结构示意图。图14是本发明抽取装置的再一实施例的结构示意图。
具体实施例方式下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。本发明的示例性实施例及其说明用于解释本发明,但并不构成对本发明的不当限定。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。本发明的目的在于提供一种基于DIV位置的网页正文抽取方法和装置,能够解决基于DIV布局的网页正文抽取问题。为了实现本发明的目的,引入了原子DIV块的概念原子DIV块就是没有包含其它DIV块的DIV块。因此,可以将HTML页面定义为一个二元组Ω = (Φ, δ),其中,
Φ=(ψ\ φ2,…,φτ)表示给定页面上的所有原子DIV块的集合,δ = (ζ \ ζ2,···, C)则定义了各个DIV块的排版属性,其中,可以包括DIV块四条边在页面中的绝对坐标值 (即,xy坐标的坐标值)、DIV块的宽度和高度(例如,可以通过递归计算获得网页中DIV块的绝对坐标值和宽度与高度值)。为了使HTML页面符合上述定义,需要对页面的DIV块进行重新构建,并根据构建后的DIV块的位置关系,只保留原子DIV块,使页面上的DIV块在位置上不存在包含与重叠关系。对于一个符合上述定义的二元组的页面,对DIV块进行结构和位置分析,定位位于网页中位置最重要的DIV块,并抽取出网页正文。可选地,还可以通过扩展算法使正文抽取的准确率更高。图1是本发明网页正文抽取方法的一个实施例的流程示意图。如图1所示,该实施例可以包括以下步骤S102,由于HTML页面在浏览器中是由DOM进行描述的,DOM中包含许多可以用于分析和模式匹配的有效信息,在DIV布局的网页中,DOM模型由多个DIV块组成,DIV块作为一个容器,可以用来存放页面的文字和图片信息,网页正文就存在DIV块之中,同时,在网页正文的四周还可能分布着各种噪音信息,因此,可以利用HTML页面在DOM树中的DIV块信息对HTML页面重新构建DIV块,从而为网页中的每一段零散代码的两端都加上一对DIV 标签,以保证网页中的各个独立区域都被一个DIV块所包含;
举例说明,可以从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;例如,可以使用正则表达式,从网页代码中获取所有包含在两个DIV开始标签<div女 > 之间,且不包含</div>标签的代码;从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;例如,可以获取所有包含在两个DIV开始标签</div>之间,且不包含<div女 > 标签的代码; 为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签;即,为找到的每一个代码段的两端分别加上一对DIV标签,使其被包含在一个DIV块中。图2是本发明实施例重新构建DIV块的示意图。如图2所示,左侧为重新构建前的HTML页面,右侧为重新构建后的HTML页面,在构建过程中,为两个非DIV代码段分别添加了 DIV块的开始标签和结束标签。S104,每个DIV块的排版属性由外部的层叠样式表(CascadingMyle Sheets, CSS)进行定义和控制,通常情况下,网页上的DIV块在位置上存在很多包含关系,甚至重叠关系,这样就会造成DIV块被重复分析,从而降低了分析的效率,因此,为了使页面中的DIV 块彼此之间在位置上不存在包含和重叠关系以防止被重复分析,可以去除重新构建DIV块中的非原子DIV块,保留其中的原子DIV块,原子DIV块为除其本身之外不包含任何其他 DIV块的DIV块(如图2中的DIV块E、F、G或H),从而实现页面中的DIV块在位置上都彼此独立,不存在包含和覆盖关系,使DIV块符合步骤S106分析的需要,并且还可以避免DIV 块被重复分析,以提高分析效率;举例说明,可以在重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;根据计算出的层次值判断每个DIV块是否为原子DIV块;去除重新构建DIV块中的非原子DIV块;继续以图2为例进行说明,为了使页面中的DIV彼此之间在位置上没有存在包含和覆盖关系,重新构建后的各DIV块(包括DIV块A H)的属性值发生了变化,可以重新从DOM树中计算出各个DIV块相对页面BODY标签的层次值。通过观察层次值可以很清晰地判断出一个DIV块是否包含有其他DIV块。在图2中,从最外层DIV开始,按自上而下的顺序(即,DIV块从A- > B- > C- > E- > G- > F- > H- > D的顺序),DIV块的层次值依次为1- > 2- > 2- > 3- > 3- > 3- > 3- > 2。从层次值序列可以看出,DIV块A和DIV 块C由于其右边元素的层次值大于其自身的层次值,所以它们里面还包含有其他DIV块,故作为非原子DIV块不予保留。经上述处理之后,各个DIV块的层次值都已全部变为1,即,均成为原子DIV块。其变化过程如图3所示。S106,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV 块;从大量网页的统计分析数据可以看出,包含网页正文的DIV块一般符合下述两个条件(1)在横向方向上,其横跨所有原子DIV块覆盖区域的一半以上;( 在面积上,其面积是所有原子DIV块中面积最大的。具体地,可以循环取出每个原子DIV块,分别验证每个DIV块是否符合上述条件(1),若符合,则将其放置到一个数组A中,遍历完毕后,对数组 A中的DIV块再按照面积从大到小的顺序进行排序,取出面积最大的DIV块,并放入数组B 中。
举例说明,可以从所有原子DIV块中查找出横向宽度大于预定宽度的原子DIV块; 其中,预定宽度可以是覆盖HTML页面中所有原子DIV块宽度的长度的一半,换句话说,如果在HTML页面中建立xy坐标轴,以左下脚为坐标原点,覆盖HTML页面中所有原子DIV块宽度的长度MaX_Width就是最左侧的原子DIV块的左侧边的χ轴坐标值与最右侧的原子DIV 块的右侧边的χ轴坐标值之差,如图4所示;从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为包含网页正文的DIV块。S108,对包含网页正文的DIV块进行内容提取,以获取网页正文。该实施例利用DOM树中的DIV块信息重新构建DIV块,并且保留原子DIV块,以防止同一 DIV块被重复分析,从而提高了分析效率。同时,根据每个原子DIV块的参数来选取包含网页正文的DIV块,以有效去除HTML网页中的噪音信息,在很大程度上提高了从HTML 网页中获取正文信息的准确度。图5是本发明网页正文抽取方法的另一实施例的流程示意图。如图5所示,该实施例可以包括以下步骤S202,利用HTML页面在DOM树中的DIV块信息重新构建DIV块,即,将页面中的 DIV块完整化和标准化。S204,保留重新构建DIV块中的原子DIV块,以消除页面中DIV块之间的包含与重叠关系,其中,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块。S206,对每个原子DIV块进行参数(例如,宽度和面积)分析,根据分析结果选取出包含网页正文的DIV块,以实现对包含网页正文DIV块的定位。S208,如果原子DIV块与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方,则确定与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块;举例说明,如果网页正文都集中存放在一个大的DIV块中,那么上述实施例的数组B中包含的就是网页正文的DIV块,然而,还有很多网页是以多个宽度相同的DIV块进行纵向布局的,彼此之间有一定的间隙,因此,为了使网页正文的抽取准确率更高,可以设定一个间隙阀值T,先从数组A中取出一个DIV块,如果该DIV块与数组B中的DIV块在坐标轴上处于上下关系,即,位于正上方间隔T处或者正下方间隔T处(例如,可以通过两个DIV 块的相邻边的1轴坐标的差值与T判断),则可以将该DIV块加入数组B,否则丢弃。如此循环直到数组A为空。此时,数组B中的元素就是包含网页正文DIV块集合,对这些DIV块中的内容(可以是文字信息或图片信息)进行提取,组合之后即可获取网页正文。S210,对包含网页正文的DIV块进行内容提取,以获取网页正文。该实施例与上述实施例相比,由于考虑了多种页面设计格式,从而使得网页正文的提取准确率更高。图6是本发明网页正文抽取方法的又一实施例的流程示意图。如图6所示,该实施例可以包括以下步骤S302,过滤HTML页面中的无关代码,例如,Javascript代码和冗余标签;在HTML页面代码中,除了包含用户可见的页面内容外,一般还包含一些诸如 Javascript代码和冗余标签等用户并不关心的内容,为了得出一个结构代码较为简洁的页
8面,可以先对上述代码进行过滤。S304,利用 HTML 页面在 DOM (Document Object Model)树中的 DIV ±夬信息重新构建DIV块。S306,保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块。S308,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV 块。S310,对包含网页正文的DIV块进行内容提取,以获取网页正文。该实施例与上述实施例相比,由于引入无关代码过滤机制,为网页正文抽取的后续步骤提供了简洁且清晰的代码,因此,在很大程度上提高了网页正文的抽取效率。图7是本发明网页正文抽取方法的再一实施例的流程示意图。如图7所示,在远程获取一个HTML页面的源代码之后,经下述步骤使其成为符合上述网页二元组定义的网页S402,过滤HTML页面中的Javascript代码和冗余标签;S404,利用 HTML 页面在 DOM (Document Object Model)树中的 DIV ±夬信息重新构建DIV块;S406,保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;S408,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV 块;S410,如果原子DIV块与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方,则确定与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块;S412,对包含网页正文的DIV块进行内容提取,以获取网页正文。图8是本发明网页正文抽取方法的再一实施例的流程示意图。如图8所示,该实施例可以包括以下步骤S502,远程获取页面;S504,过滤页面中的无关代码;S506,从HTML代码的起始处开始直至结束处重新构建DIV块;S508,计算每个DIV块的层次值;S510,保留原子DIV块;S512,获取DIV块的属性;S514,过滤无效的非原子DIV块;S516,对保留下的DIV块的参数进行分析;S518,查找与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV块,作为包含网页正文的DIV块;S520,提取每个包含网页正文的DIV块的内容;S522,将提取出的内容进行组合,以获取完整的网页正文。图9是本发明抽取装置的一个实施例的结构示意图。
如图9所示,该实施例的抽取装置10可以包括DIV块重构模块11,用于利用HTML页面在DOM树中的DIV块信息重新构建DIV块;原子DIV块保留模块12,与DIV块重构模块11相连,用于保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;网页正文DIV块选取模块13,与原子DIV块保留模块12相连,用于对每个原子DIV 块进行参数分析,根据分析结果选取出包含网页正文的DIV块;网页正文提取模块14,与网页正文DIV块选取模块13相连,用于对包含网页正文的DIV块进行内容提取,以获取网页正文。该实施例针对流行的DIV网页布局,基于网页实际视觉效果,利用浏览器DOM树中 DIV块的信息,通过DIV块的重新构建、保留原子DIV块以及DIV块的参数分析来实现网页正文的抽取,不仅有效去除了 HTML网页中的噪音信息,而且在很大程度上提高了从HTML网页中获取正文信息的准确度。图10是本发明抽取装置的另一实施例的结构示意图。如图10所示,与图9中的实施例相比,该实施例的抽取装置20还包括网页正文DIV块确定模块21,分别与网页正文DIV块选取模块13和网页正文提取模块14相连,用于如果原子DIV块与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方,则确定与包含网页正文的DIV块间隔预定间隙且位于包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块。该实施例与上述实施例相比,由于考虑了多种页面设计格式,从而使得网页正文的提取准确率更高。图11是本发明抽取装置的又一实施例的结构示意图。如图11所示,与图9中的实施例相比,该实施例的抽取装置30中的DIV块重构模块31包括第一非DIV代码段获取单元311,用于从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;第二非DIV代码段获取单元312,用于从HTML页面代码的起始处开始直至HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;标签添加单元313,分别与第一非DIV代码段获取单元311和第二非DIV代码段获取单元312相连,用于为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签。该实施例为网页中的每一段零散代码的两端都加上一对DIV标签,以保证网页中的各个独立区域都被一个DIV块所包含,以保证网页正文的有效抽取。图12是本发明抽取装置的再一实施例的结构示意图。如图12所示,与图9中的实施例相比,该实施例的抽取装置40中的原子DIV块保留模块41可以包括层次值计算单元411,用于在重新构建DIV块中计算出每个DIV块相对页面BODY 标签的层次值;原子DIV块判断单元412,与层次值计算单元411相连,用于根据计算出的层次值判断每个DIV块是否为原子DIV块;非原子DIV块去除单元413,与原子DIV块判断单元412相连,用于去除重新构建DIV块中的非原子DIV块。该实施例能够避免网页中的DIV块被重复分析,以提高分析效率。图13是本发明抽取装置的再一实施例的结构示意图。如图13所示,与图9中的实施例相比,该实施例的抽取装置50中的网页正文DIV 块选取模块51包括第一查找单元511,用于从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;第二查找单元512,与第一查找单元511相连,用于从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为包含网页正文的DIV块。图14是本发明抽取装置的再一实施例的结构示意图。如图14所示,与图9中的实施例相比,该实施例的抽取装置60还包括无用信息过滤模块61,与DIV块重构模块11相连,用于过滤HTML页面中的 Javascript代码和冗余标签。该实施例由于引入无关代码过滤机制,为网页正文抽取的后续步骤提供了简洁且清晰的代码,因此,在很大程度上提高了网页正文的抽取效率。本发明的上述实施例能够克服现有技术的不足,可以应用于网页数据采集及挖掘等信息处理领域,实现算法简单、直观、而且具有较低的实现复杂度,正文抽取精确率可以高达94%以上,具有很高的通用性和精确性。此外,本发明还可以应用于互联网的信息安全监控领域,例如,可以对城域网以及 IDC托管服务器中的页面进行分析以保证信息的安全;还可以用于用户行为分析,例如,可以通过分析用户访问的页面内容了解用户的兴趣爱好,还可以针对性地对用户进行广告投放。虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
权利要求
1.一种基于DIV位置的网页正文抽取方法,其特征在于,包括 利用HTML页面在DOM树中的DIV块信息重新构建DIV块;保留所述重新构建DIV块中的原子DIV块,所述原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块; 对所述包含网页正文的DIV块进行内容提取,以获取网页正文。
2.根据权利要求1所述的方法,其特征在于,在对所述包含网页正文的DIV块进行内容提取之前,所述方法还包括如果原子DIV块与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方,则确定与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块。
3.根据权利要求1所述的方法,其特征在于,所述利用HTML页面在DOM树中的DIV块信息重新构建DIV块的步骤包括从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签。
4.根据权利要求1所述的方法,其特征在于,保留所述重新构建DIV块中的原子DIV块的步骤包括在所述重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值; 根据计算出的层次值判断每个DIV块是否为所述原子DIV块; 去除所述重新构建DIV块中的非原子DIV块。
5.根据权利要求1所述的方法,其特征在于,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块的步骤包括从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块; 从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为所述包含网页正文的DIV块。
6.根据权利要求1所述的方法,其特征在于,在重新构建DIV块之前,所述方法还包括过滤所述HTML页面中的Javascript代码和冗余标签。
7.一种基于DIV位置的网页正文抽取装置,其特征在于,包括DIV块重构模块,用于利用HTML页面在DOM树中的DIV块信息重新构建DIV块; 原子DIV块保留模块,与所述DIV块重构模块相连,用于保留所述重新构建DIV块中的原子DIV块,所述原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;网页正文DIV块选取模块,与所述原子DIV块保留模块相连,用于对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;网页正文提取模块,与所述网页正文DIV块选取模块相连,用于对所述包含网页正文的DIV块进行内容提取,以获取网页正文。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括网页正文DIV块确定模块,分别与所述网页正文DIV块选取模块和所述网页正文提取模块相连,用于如果原子DIV块与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方,则确定与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV 块。
9.根据权利要求7所述的装置,其特征在于,所述DIV块重构模块包括第一非DIV代码段获取单元,用于从所述HTML页面代码的起始处开始直至所述HTML 页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;第二非DIV代码段获取单元,用于从所述HTML页面代码的起始处开始直至所述HTML 页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;标签添加单元,分别与所述第一非DIV代码段获取单元和所述第二非DIV代码段获取单元相连,用于为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签。
10.根据权利要求7所述的装置,其特征在于,所述原子DIV块保留模块包括层次值计算单元,用于在所述重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;原子DIV块判断单元,与所述层次值计算单元相连,用于根据计算出的层次值判断每个DIV块是否为所述原子DIV块;非原子DIV块去除单元,与所述原子DIV块判断单元相连,用于去除所述重新构建DIV 块中的非原子DIV块。
11.根据权利要求7所述的装置,其特征在于,所述网页正文DIV块选取模块包括第一查找单元,用于从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;第二查找单元,与所述第一查找单元相连,用于从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为所述包含网页正文的DIV块。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括无用信息过滤模块,与所述DIV块重构模块相连,用于过滤所述HTML页面中的 Javascript代码和冗余标签。
全文摘要
本发明公开了一种基于DIV位置的网页正文抽取方法和装置。其中,该方法包括利用HTML页面在DOM树中的DIV块信息重新构建DIV块;保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;对包含网页正文的DIV块进行内容提取,以获取网页正文。本发明能够防止同一DIV块被重复分析,从而提高了分析效率。同时,根据每个原子DIV块的参数来选取包含网页正文的DIV块,以有效去除HTML网页中的噪音信息,在很大程度上提高了从HTML网页中获取正文信息的准确度。
文档编号G06F17/30GK102479181SQ20101055332
公开日2012年5月30日 申请日期2010年11月22日 优先权日2010年11月22日
发明者万东, 刘勋华, 刘舟, 吴晔, 曹琳, 李晓佳, 李辉遒, 詹国强, 谢亨骏, 郭玲 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1