CN102479181B - 基于div位置的网页正文抽取方法和装置 - Google Patents
基于div位置的网页正文抽取方法和装置 Download PDFInfo
- Publication number
- CN102479181B CN102479181B CN201010553327.3A CN201010553327A CN102479181B CN 102479181 B CN102479181 B CN 102479181B CN 201010553327 A CN201010553327 A CN 201010553327A CN 102479181 B CN102479181 B CN 102479181B
- Authority
- CN
- China
- Prior art keywords
- div
- block
- div block
- web page
- atom
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于DIV位置的网页正文抽取方法和装置。其中,该方法包括利用HTML页面在DOM树中的DIV块信息重新构建DIV块;保留重新构建DIV块中的原子DIV块,原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;对包含网页正文的DIV块进行内容提取,以获取网页正文。本发明能够防止同一DIV块被重复分析,从而提高了分析效率。同时,根据每个原子DIV块的参数来选取包含网页正文的DIV块,以有效去除HTML网页中的噪音信息,在很大程度上提高了从HTML网页中获取正文信息的准确度。
Description
技术领域
本发明涉及信息采集与处理技术领域,特别地,涉及一种基于DIV(Division)位置的网页正文抽取方法和装置。
背景技术
随着Internet及其技术的迅速发展,在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页面定义为一个二元组Ω=(Φ,δ),其中,表示给定页面上的所有原子DIV块的集合,δ=(ζ1,ζ2,…,ζT)则定义了各个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块的排版属性由外部的层叠样式表(CascadingStyle 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块覆盖区域的一半以上;(2)在面积上,其面积是所有原子DIV块中面积最大的。具体地,可以循环取出每个原子DIV块,分别验证每个DIV块是否符合上述条件(1),若符合,则将其放置到一个数组A中,遍历完毕后,对数组A中的DIV块再按照面积从大到小的顺序进行排序,取出面积最大的DIV块,并放入数组B中。
举例说明,可以从所有原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;其中,预定宽度可以是覆盖HTML页面中所有原子DIV块宽度的长度的一半,换句话说,如果在HTML页面中建立xy坐标轴,以左下脚为坐标原点,覆盖HTML页面中所有原子DIV块宽度的长度Max_Width就是最左侧的原子DIV块的左侧边的x轴坐标值与最右侧的原子DIV块的右侧边的x轴坐标值之差,如图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块的相邻边的y轴坐标的差值与T判断),则可以将该DIV块加入数组B,否则丢弃。如此循环直到数组A为空。此时,数组B中的元素就是包含网页正文DIV块集合,对这些DIV块中的内容(可以是文字信息或图片信息)进行提取,组合之后即可获取网页正文。
S210,对包含网页正文的DIV块进行内容提取,以获取网页正文。
该实施例与上述实施例相比,由于考虑了多种页面设计格式,从而使得网页正文的提取准确率更高。
图6是本发明网页正文抽取方法的又一实施例的流程示意图。
如图6所示,该实施例可以包括以下步骤:
S302,过滤HTML页面中的无关代码,例如,Javascript代码和冗余标签;
在HTML页面代码中,除了包含用户可见的页面内容外,一般还包含一些诸如Javascript代码和冗余标签等用户并不关心的内容,为了得出一个结构代码较为简洁的页面,可以先对上述代码进行过滤。
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托管服务器中的页面进行分析以保证信息的安全;还可以用于用户行为分析,例如,可以通过分析用户访问的页面内容了解用户的兴趣爱好,还可以针对性地对用户进行广告投放。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
Claims (8)
1.一种基于DIV位置的网页正文抽取方法,其特征在于,包括:
利用HTML页面在DOM树中的DIV块信息重新构建DIV块;
保留所述重新构建DIV块中的原子DIV块,所述原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;其中,保留所述重新构建DIV块中的原子DIV块的步骤包括:在所述重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;根据计算出的层次值判断每个DIV块是否为所述原子DIV块;去除所述重新构建DIV块中的非原子DIV块;
对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;
对所述包含网页正文的DIV块进行内容提取,以获取网页正文;
其中,所述利用HTML页面在DOM树中的DIV块信息重新构建DIV块的步骤包括:
从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;
从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;
为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签。
2.根据权利要求1所述的方法,其特征在于,在对所述包含网页正文的DIV块进行内容提取之前,所述方法还包括:
如果原子DIV块与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方,则确定与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块。
3.根据权利要求1所述的方法,其特征在于,对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块的步骤包括:
从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;
从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为所述包含网页正文的DIV块。
4.根据权利要求1所述的方法,其特征在于,在重新构建DIV块之前,所述方法还包括:
过滤所述HTML页面中的Javascript代码和冗余标签。
5.一种基于DIV位置的网页正文抽取装置,其特征在于,包括:
DIV块重构模块,用于利用HTML页面在DOM树中的DIV块信息重新构建DIV块;
所述DIV块重构模块包括:
第一非DIV代码段获取单元,用于从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块开始标签之间的非DIV代码段;
第二非DIV代码段获取单元,用于从所述HTML页面代码的起始处开始直至所述HTML页面代码的结束处获取两个DIV块结束标签之间的非DIV代码段;
标签添加单元,分别与所述第一非DIV代码段获取单元和所述第二非DIV代码段获取单元相连,用于为获取的非DIV代码段补齐DIV块开始标签和DIV块结束标签;
原子DIV块保留模块,与所述DIV块重构模块相连,用于保留所述重新构建DIV块中的原子DIV块,所述原子DIV块为除其本身之外不包含任何其他DIV块的DIV块;
其中,所述原子DIV块保留模块包括:
层次值计算单元,用于在所述重新构建DIV块中计算出每个DIV块相对页面BODY标签的层次值;
原子DIV块判断单元,与所述层次值计算单元相连,用于根据计算出的层次值判断每个DIV块是否为所述原子DIV块;
非原子DIV块去除单元,与所述原子DIV块判断单元相连,用于去除所述重新构建DIV块中的非原子DIV块;
网页正文DIV块选取模块,与所述原子DIV块保留模块相连,用于对每个原子DIV块进行参数分析,根据分析结果选取出包含网页正文的DIV块;
网页正文提取模块,与所述网页正文DIV块选取模块相连,用于对所述包含网页正文的DIV块进行内容提取,以获取网页正文。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
网页正文DIV块确定模块,分别与所述网页正文DIV块选取模块和所述网页正文提取模块相连,用于如果原子DIV块与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方,则确定与所述包含网页正文的DIV块间隔预定间隙且位于所述包含网页正文的DIV块的正上方或正下方的DIV块为包含网页正文的DIV块。
7.根据权利要求5所述的装置,其特征在于,所述网页正文DIV块选取模块包括:
第一查找单元,用于从多个原子DIV块中查找出横向宽度大于预定宽度的原子DIV块;
第二查找单元,与所述第一查找单元相连,用于从查找出的横向宽度大于预定宽度的原子DIV块中找出面积最大的DIV块作为所述包含网页正文的DIV块。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
无用信息过滤模块,与所述DIV块重构模块相连,用于过滤所述HTML页面中的Javascript代码和冗余标签。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010553327.3A CN102479181B (zh) | 2010-11-22 | 2010-11-22 | 基于div位置的网页正文抽取方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010553327.3A CN102479181B (zh) | 2010-11-22 | 2010-11-22 | 基于div位置的网页正文抽取方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479181A CN102479181A (zh) | 2012-05-30 |
CN102479181B true CN102479181B (zh) | 2015-10-07 |
Family
ID=46091831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010553327.3A Active CN102479181B (zh) | 2010-11-22 | 2010-11-22 | 基于div位置的网页正文抽取方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479181B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102779170B (zh) * | 2012-06-25 | 2015-01-07 | 北京奇虎科技有限公司 | 一种识别网页正文楼层的系统和方法 |
CN102779169A (zh) * | 2012-06-27 | 2012-11-14 | 江苏新瑞峰信息科技有限公司 | 一种基于html标签的网页正文提取方法及装置 |
CN103577171B (zh) * | 2012-07-30 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 一种显示网页内容的方法和移动终端 |
CN103577466B (zh) * | 2012-08-03 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 一种在浏览器中显示网页内容的方法和装置 |
CN103020129B (zh) * | 2012-11-20 | 2015-11-18 | 中兴通讯股份有限公司 | 一种文本内容提取方法和装置 |
CN103761257B (zh) * | 2013-12-30 | 2017-09-22 | 优视科技有限公司 | 基于移动浏览器的网页处理方法及系统 |
CN105808569A (zh) * | 2014-12-30 | 2016-07-27 | 北京奇虎科技有限公司 | 一种提供搜索摘要服务的方法和装置 |
CN106855859B (zh) * | 2015-12-08 | 2020-11-10 | 北京搜狗科技发展有限公司 | 一种网页正文提取方法及装置 |
CN105740423B (zh) * | 2016-01-29 | 2019-02-15 | 浪潮软件集团有限公司 | 一种抽取正文的方法及装置 |
CN107203527B (zh) * | 2016-03-16 | 2019-06-28 | 北大方正集团有限公司 | 新闻网页的正文抽取方法和系统 |
CN106648821B (zh) * | 2016-12-29 | 2020-02-11 | 北京奇艺世纪科技有限公司 | 一种网页优化方法及装置 |
WO2019090738A1 (zh) * | 2017-11-10 | 2019-05-16 | 深圳市华阅文化传媒有限公司 | 净化网络小说页面的方法与装置 |
CN109271598B (zh) * | 2018-08-01 | 2021-03-12 | 数据地平线(广州)科技有限公司 | 一种抽取新闻网页内容的方法、装置及存储介质 |
CN109725965A (zh) * | 2018-12-13 | 2019-05-07 | 平安普惠企业管理有限公司 | 层叠样式表维护方法、装置、计算机设备及存储介质 |
CN109885814A (zh) * | 2019-03-04 | 2019-06-14 | 上海携程商务有限公司 | 数据表图形生成系统、方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408898A (zh) * | 2008-11-07 | 2009-04-15 | 北大方正集团有限公司 | 一种提取网页正文的方法和装置 |
-
2010
- 2010-11-22 CN CN201010553327.3A patent/CN102479181B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408898A (zh) * | 2008-11-07 | 2009-04-15 | 北大方正集团有限公司 | 一种提取网页正文的方法和装置 |
Non-Patent Citations (2)
Title |
---|
《一种通用HTML网页主题信息提取方法》;许文等;《现代图书情报技术》;20071231(第1期);见正文第41-43页,图1-4 * |
《基于模板的Web信息自动提取方法》;郑长松等;《计算机应用研究》;20090228;第26卷(第2期);正文第570-572、582页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102479181A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102479181B (zh) | 基于div位置的网页正文抽取方法和装置 | |
CN102663023B (zh) | 一种提取网页内容的实现方法 | |
CN101937438B (zh) | 网页内容提取方法和装置 | |
Cai et al. | Vips: a vision-based page segmentation algorithm | |
CN102253979B (zh) | 基于视觉的web页面萃取方法 | |
CN103853760B (zh) | 一种网页正文内容提取方法和装置 | |
CN103473338B (zh) | 网页内容抽取方法和网页内容抽取系统 | |
CN103927397B (zh) | 一种基于区块树的Web页面链接块的识别方法 | |
CN105022803B (zh) | 一种提取网页正文内容的方法及系统 | |
CN103052950A (zh) | 用于过滤网页内容的系统和方法 | |
CN102915361B (zh) | 一种基于文字分布特征的网页正文提取方法 | |
CN102184189A (zh) | 基于dom节点文本密度的网页核心块确定方法 | |
CN106503211B (zh) | 面向信息发布类网站的移动版自动生成的方法 | |
CN104572934B (zh) | 一种基于dom的网页关键内容抽取方法 | |
CN103294781A (zh) | 一种用于处理页面数据的方法与设备 | |
CN102651002A (zh) | 一种网页信息抽取方法及其系统 | |
CN103942211B (zh) | 一种正文页的识别方法及装置 | |
CN105740355B (zh) | 基于聚集文本密度的网页正文提取方法及装置 | |
CN107590288B (zh) | 用于抽取网页图文块的方法和装置 | |
CN102999511A (zh) | 一种页面快速转换方法、装置和系统 | |
US10198408B1 (en) | System and method for converting and importing web site content | |
CN104572874B (zh) | 一种网页信息的抽取方法及装置 | |
CN106897287B (zh) | 网页发布时间抽取方法和用于网页发布时间抽取的装置 | |
CN103488743B (zh) | 网页元素抽取方法和网页元素抽取系统 | |
CN105550279A (zh) | 基于视觉的列表页识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |