一种网页分割方法

文档序号:6340928阅读:495来源:国知局
专利名称:一种网页分割方法
技术领域
本发明涉及互联网技术领域,具体地说,本发明涉及一种网页分割方法。
背景技术
互联网技术大大改变了人们的日常生活方式,人们可以越来越方便的访问互联 网。然而在某些情况下,人们对互联网的访问却会受到种种制约。由于互联网上的网页大 都是为大显示器设计的,一个网页内往往包含很多内容,而在某些情况下,人们不需要也不 想要浏览整个网页的信息。例如使用某些小显示屏的设备(如手机)上网时,一般来说屏幕无法全部显示 一个完整的网页,如果不对网页分割,将导致手机屏幕上长长的滚动条和内容的混乱显示, 不利于用户浏览;并且,移动设备的互联网访问带宽较低,如果要将整个网页下载到移动设 备,必然用户等待时间增长,而且会产生很大的流量,可是用户需要的也只是网页中的某个 部分。再例如在某些场合,用户可能不能通过眼睛观看网页的内容,而需要通过语音读 出网页的内容,如盲人或者用户在开车时浏览网页。由于朗读速度远远低于视觉浏览的速 度,从头至尾的朗读将耗费大量的时间。所以,当前需要一种将单个网页分割成多个子部分(本文中称之为块)的网页分 割技术,以方便移动用户或一些特殊应用场景下的用户浏览互联网网页。目前的网页分割大都是对互联网网页做基于文本的平面分割,显然,这种分割方 案将对原有的网页结构产生极大的破坏。公开号为CN101655874A的专利申请披露了一种网页分割方法,该方法包括D0M 树构建步骤,构建原始网页对应的DOM树;脉络集合构建步骤,分别构建该DOM树中每一 叶子结点对应的脉络集合,该脉络集合中包含该DOM树的根结点、该叶子结点以及根结点 与该叶子结点之间的每一中间结点;合并步骤,合并各叶子结点对应的脉络集合,使合并 后的脉络集合所对应网页的大小保持在预先设置的阈值以下。本步骤具体内容可参考 CN101655874A中的记载。相对于基于文本的平面分割技术,这种基于DOM树和网页大小阈 值的分割方案更好地保持了原有的网页结构。但是,该方案仍然存在一些不足。一、为充分发挥导航的作用,很多网页在视觉上往往采用块状结构来组织,将属于 同一主题或分类的超链接组织为一个网页块。这类页面的典型代表是各大网站的首页。DOM 树的每个叶结点往往对应上述网页中的一个超链接。如图1所示,主题或分类相同的几个 超链接被集中到网页多行块1显示。如果基于网页大小阈值对DOM树的各脉络集合进行合 并,则可能会把主题或分类不同的超链接划分在一个子网页,而主题或分类相同的一些链 接则可能被划分到不同的子网页,这导致子网页的划分效果琐碎且有一定的随意性,不便 于用户浏览。二、原始网页中,往往将几个相关主题或分类标签组织在一行,为方便描述,下文 中将这种多个(有时也可能是一个)主题或分类标签组成的行称为主题块。如图1所示,对于一个主题块2,属于其中主题或分类的多行块1被安排到该主题块2附近,这样主题块 2可以起到提示用户的作用。而文献CN101655874A中,由于基于网页大小阈值对DOM树的 各脉络集合进行合并,可能使主题块和所对应的多行块脱节,甚至被分到不同的子网页中。 具体地,文献CN101655874A中采用基于网页DOM的脉络集合对网页进行划分,它首先构建 第一脉络和第二脉络,然后依据第一脉络中的所有元素所占的网页区域大小是否达到了一 定的阈值,如果达到了,则把其作为一个单独的网页块,如果未达到则将第二脉络中的一个 叶结点加入到第一脉络中。此种方法容易造成不相关的内容被划分到同一个块中,不能保 证所划分到一块的内容具有相关性。如附图3所示,按照网页大小阈值划分,其结果是位于 中间的分块中既有关于军事的内容,又有关于探索的的内容。而部分军事内容被划分到上 一块,部分探索内容被划分到下一块。显然,这种分块结果不便于用户浏览。综上所述,现有技术的网页分割方法均会不同程度地破坏原有的网页结构,当前 迫切需要一种能够很好地保持原有的网页结构的网页分割方法。

发明内容
因此,本发明的目的是提供一种能够很好地保持原有的网页结构的网页分割方法。为实现上述发明目的,本发明提供了一种网页分割方法,包括步骤1)获取待分割网页的DOM树;步骤2)遍历所述DOM树,将其中每个只包含1个基本多行结点的结点作为一个基 本分块,将每两个只包含1个基本多行结点的结点之间的零散叶结点分别合成一个基本分 块;当一个基本多行结点的父结点被作为一个基本分块时,该基本多行结点不再作为一个 基本分块;所述基本多行结点是DOM树中满足多行性质的最小结点;一个结点具有多行性质 是指该结点包含至少两个含有文本的子结点且这两个子结点所对应的网页显示区域的纵 坐标不同。其中,所述网页分割方法还包括步骤3)在所述基本分块中找出主题块,将主题块与其后面邻接的若干个非主题 块合并;所述主题块中包含主题或分类标签。其中,所述步骤2)包括下列子步骤21)自底向上遍历网页的DOM树,找出DOM树中的基本多行结点;22)自顶向下先序遍历DOM树,将其中每个只包含1个基本多行结点的结点作为一 个基本分块,将每两个只包含1个基本多行结点的结点之间的零散叶结点分别合成一个基 本分块。其中,所述步骤21)包括下列子步骤211)自底向上遍历网页的DOM树,对每个当前结点,执行步骤212);212)记录当前结点所含的基本多行结点个数。其中,所述步骤22)包括下列子步骤221)建立一个结点列表,自顶向下地先序遍历DOM树;222)如果当前结点包含的基本多行结点个数为0,将当前结点放入所述结点列表,否则执行步骤223);223)如果当前结点包含的基本多行结点个数为1,则执行步骤224),否则执行步 骤 225);224)将当前块作为一个基本分块,并将当前所述结点列表中的结点合并,作为另 一个基本分块,然后清空所述结点列表;225)如果当前结点包含的基本多行结点个数为1,则对它的所有孩子结点分别执 行步骤222) 225)。其中,所述步骤3)包括下列子步骤31)对每个基本分块,根据其字体、文字长度、背景颜色中的一项或多项特征来判 断该基本分块是否是主题块;32)将每个主题块与其后面邻接的若干个非主题块合并。其中,所述步骤32)包括下列子步骤321)取出一个主题块;322)取与所述主题块的宽度相等的后面邻接的若干非主题块或者其宽度之和与 主题块的宽度相等的后面邻接的若干非主题块,根据预设的条件判断是否将该主题块这些 后面邻接的非主题块合并,如果是,则合并;如果否,则不合并。其中,所述步骤322)中,所述预设的条件是主题块与后面邻接的非主题块的纵 坐标距离小于预设的阈值。与现有技术相比,本发明具有下列技术效果1)本发明能够在分块的同时很好地保持原有的网页结构,避免打散属于同一主题 或分类的链接,避免主题或分类标签与其对应的链接分离。2)本发明的执行效率高,容易实现。


以下,结合附图来详细说明本发明的实施例,其中图1示出了基本分块划分示意图;图2示出了基本分块合并后的示意图;图3示出了现有技术中一种网页分割方案的效果示意图;图4示出了本发明一个实施例中基于多行块的分割步骤的流程图;图5示出了本发明一个实施例中基于主题块的合并步骤的流程图;图6示出了 一个简单的DOM树示例;图7示出了一个网页实例的分块结果的整体示意图;图7a、图7b、图7c、图7d分别为图7的网页实例的分块结果的四个局部放大示意 图;图8示出了另一个网页实例的分块结果的整体示意图;图8a、图Sb、图8c分别为图8的网页实例的分块结果的三个局部放大示意图;图9示出了一个特殊情况下的DOM树片段;图10示出了图9的DOM树片段所对应的网页显示区域。
具体实施例方式本发明网页分割方法是一种基于DOM树对网页进行分割的方法,DOM树本质上是 一棵标签树,它反映了网页的结构信息。此外为了获得较好的分块效果,在本发明的一些优 选实施例中还引入了少量简单的视觉信息来辅助网页分块。在完成分块后,可以将每个分 块作为一个子网页显示;也可以仍然将原始网页作为一个完整网页,同时将其中每个分块 与相应的控制命令映射,从而方便用户浏览网页。下面,结合实施例对本发明做进一步地描 述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。根据本发明的一个实施例,提供了 一种网页分割方法。该实施例中引入了 “基本多行结点”的概念,其定义如下定义.基本多行结点。基本多行结点采用递归定义,如果一个结点同时满足下述a、b、c三个条件,则该 结点是基本多行结点。a)该结点不是叶子结点;b)该结点的所有子孙结点都不是基本多行结点;c)存在该结点的两个孩子结点Nei,Nc2满足Nci. TextLen Φ 0,Nc2. TextLen Φ 0Nci. Region. LeftTop. y Φ· Nc2. Region. LeftTop. y其中,N. TextLen表示结点N(包括其孩子结点)中包含的文本长度,N. Region. TopLeft. y表示结点N在网页所占的区域的左上角的纵坐标值。从上述定义可以看出,基本多行结点包含至少两个含有文本的结点,且这两个结 点在网页上显示的纵坐标位置不同,这直接体现了“多行”的性质。而且,上述的递归定义 保证了基本多行结点是满足“多行”性质的最小结点。定义.结点所含的基本多行结点个数。对任一结点N,其所含的基本多行结点个数Iittra(N)(简称多行块属性)定义为如果N为DOM树的叶子结点,则(N) = 0 ;如果N为基本多行结点,则ηΜ ΒΝ (N) = 1 ;如果N既不是叶子结点也不是基本多行结点,则N必然有孩子结点,设其所有孩子 结点的集合为Wc ,则〃—义),即N所含的基本多行结点个数为其所有孩 子结点所含的基本多行结点个数之和。上述两个定义都是递归定义,因此,在具体实现时也采用递归算法比较方便。在本 实施例中,采用递归算法对DOM树进行自下而上的后序遍历,对遍历的每个结点应用上述 两个定义进行判断和计算,即可得到各结点所含的基本多行结点个数。本实施例主要包括两个步骤基于多行块的分割和基于主题块的合并。下面分别 介绍这两个步骤。—、基于多行块的分割通过对网页DOM树的遍历,把网页分割成多行块。该方法 只需对DOM树进行一次自底向上和一次自顶向下的遍历即可完成,具有执行效率高容易实 现的优点。基于多行块的分割主要包括以下子步骤步骤Al 对网页的DOM树进行自底向上的遍历,在遍历过程中,根据基本多行结点和结点所包含的基本多行结点个数的定义对每一个结点设置其nMN(N)的值。步骤A2 建立一个结点列表,自顶向下地先序遍历DOM树,对各结点分别执行如下 步骤1)如果当前结点包含的多行块属性为0,将当前结点放入结点列表,否则执行步 马聚2 ο2)如果当前结点包含的多行块属性为1,则执行步骤3,否则执行步骤4。3)如果结点列表不为空,则将结点列表中的结点合并,使之自成一块,该分块作为 原始网页的一个基本分块,之后清空结点列表。同时当前块也自成一块,该分块也作为原始 网页的一个基本分块。4)如果当前结点的包含的多行块属性大于1,则对它的所有孩子结点分别执行步 骤1 4。所有结点都遍历一次后,步骤A2完成,此时原始网页被划分为多个基本分块,其 中,每个基本多行结点各自是一个基本分块,每两个基本多行结点之间的零散叶结点则被 合成一个基本分块。图1示出了一个简单网页的分块结果,其中用方框围住的是在第一步 骤所划分的基本分块。可以看出,该网页被分成了四个基本分块。二、基于主题块的合并主题块具有与其他普通块不同的特征(如字体大小,文字 长度,背景颜色等与普通块不同),因此可以根据这些特征,从基本分块中找出主题块,然后 再根据视觉信息将主题块与附近的基本分块合并成一个分块,从而得到更好的分块效果。 为方便描述,本文中将除主题块外的基本分块称为非主题块。基于主题块的合并主要包括以下步骤步骤Bl 对上一步中所得到的所有块进行一次遍历,并将符合主题块特征的块标 记为主题块。步骤B2 遍历所有主题块,对当前主题块,找出当前主题块后面邻接的若干个非 主题块基本分块,并分析当前主题块和其附近的非主题块在网页中所占的矩形区域,利用 视觉信息判断这些块能否合成更大的块。如果能,则合成更大的块。在一个优选实施例中, 可以设定分块间隔阈值,如果邻接的非主题块与当前主题块的宽度相等(宽度指块的右横 坐标减去左横坐标的值)(或邻接的若干非主题块宽度之和与主题块的宽度相等),且该邻 接的非主题块与当前主题块纵坐标差值小于所述基本分块间间隔阈值,则将当前主题块与 邻近的非主题块基本分块合并成一个分块。图2示出了图1所示的分块合并后的结果。可以看出,四个基本分块将被合并为 一个块。在这个示例中,主题块下面邻接的三个分块的内容都围绕着主题块,而且它们所占 据的区域也和主题块可以很好的统一到一起。所以,这种将四个基本分块合并为一个块的 做法,符合用户的浏览习惯。根据本发明的另一个优选实施例,还提供了另一种网页分割方法,该方法通过网 页中内容多行特征对网页进行分割得到块,然后通过检测主题块的方式合并具有相同主题 的块。与前一实施例一致,本实施例的网页分割方法包括基于多行块的分割和基于主题 块的合并。下面分别介绍本实施例中的这两个步骤。一、基于多行块的分割。如图4所示,基于多行块的分割方法包括下列步骤
步骤1 自底向上遍历DOM树。设置结点的多行块属性值。每一个网页都可以用DOM树表示,通过浏览器提供的接口可以得到网页的DOM树 表示。对DOM树进行一次自底向上的遍历,遍历过程中如果碰到叶结点,则将其多行块属性 设置为零。如果碰到非叶结点,则先对其子结点进行遍历,并将子结点的y坐标值记录下。 在该结点的所有子结点都遍历完成之后,判断其子结点的多行块属性,如果其子结点中含 有多行块属性为1的结点。那么将其子结点的所有多行块属性之和作为该结点的多行块属 性,否则判断其子结点的y坐标值是否完全相同,如果相同,设置该结点的多行块属性为0, 如果不同,则设置该结点的多行块属性为1。例如,在图6中结点1的多行块属性为2,结点 4和6的多行块属性为1。步骤2:设置一个队列,和一个初始为空的结点列表。队列用来在保存在遍历过程中所需 的父结点信息。第一个压入队列的结点为DOM树的根结点。结点列表用来存储遍历过程中 多行块属性为零的结点。步骤3 判断队列是否为空,如果不为空,则进入步骤4,如果为空,则没有需要处 理的结点了,那么只需把结点列表里面的结点合并成一个块。基于多行块的分割过程结束。步骤4 弹出队列中的一个结点,该结点将作为要处理的当前结点。步骤5:判断当前结点多行块属性是否为0,如果当前结点的多行块属性为零,则 执行步骤6,否则执行步骤7。步骤6 将当前结点放入结点列表中,然后执行步骤3。步骤7 判断当前结点的多行块属性是否为1。如果是,执行步骤8,否则执行步骤 9。步骤8 将结点列表中的所有网页合并成一块,并且当前结点自成一块。然后执行 步骤3。本步骤中,在碰到多行块属性大于0的结点时,将结点列表中的连续的多行块属性 为零的结点将被合并为一块,这样使得相近的多行块结点属性为零的零散结点被组织在一 起,以避免分块过于琐碎。步骤9 将当前结点的所有子结点自左向右压入队列中,然后执行步骤3。执行本 步骤,将会对当前结点的所有子结点递归处理,直至将DOM树中的所有结点遍历一次。按照上述步骤1 9,在DOM树中的所有结点遍历完成之后,就得到了原始网页的 基本分块。进一步地,图6示出了一个简单的DOM树,下面以图6为例进一步说明上述步骤 1 9。初始时执行步骤1,结点1被压入队列。经过步骤2,3后。在步骤4,结点1被作为 当前结点,在步骤5执行后跳转到步骤7然后跳转到步骤9,将当前结点的所有子结点压入 队列。此时队列中元素为结点2,结点3,结点4,结点5,结点6。步骤9执行完成之后,回到步骤3,结点2将作为当前结点。经过步骤3,4后,在步 骤5将被放入结点列表,回到步骤3。此时队列中元素为结点3,结点4,结点5,结点6。同结点2 —样,结点3也会被放入结点列表,然后回到步骤3。此时队列中元素为 结点4,结点5,结点7。回到步骤3。在步骤4中,结点4将被作为当前结点,该结点的多行块属性为1,所 以,将会执行步骤5,7,然后执行步骤8,在步骤8里,原先被放入结点的列表的结点2,3将合并成一块。结点列表将被清空。而多行块属性为1的结点4,也将独立成为一块。此时, 队列中元素为结点5,结点6。后续步骤里,结点5将被放入结点列表中,队列中元素为6。然后6将作为当前结 点,结点5将作为独立的一块,而结点6多行块属性为1,也将作为独立的一块。需指出的是,虽然本实施例采用队列这一数据结构来保存在遍历过程中所需的父 结点信息,但是本领域技术人员易于理解,也可以使用栈或其它数据结构来保存在遍历过 程中所需的父结点信息。二、基于主题块的合并。如图5所示,本实施例中基于主题块的合并方法包括下列步骤步骤1 遍历所有基本分块,找出主题块。初始设置所有基本分块均未被处理标 记。在遍历过程中,根据主题块特征,判断各个基本分块是否为主题块,并将其标记出来。其 中,主题块特征指的是该块中的字体大小,字体长度和背景的颜色。一般来说,主题块相对 于非主体块,具有字体加粗,文字长度较短,背景颜色比较鲜艳(如红绿等,一般不是白色) 等特征。步骤2 按顺序取出当前第一个主题块,执行步骤3 4。步骤3:获取当前主题块后面邻接的若干个非主题块。后面邻接块是指在DOM树中 右边的块,也就是网页源代码中该主题块代码后面紧邻代码所代表的块。在网页源代码中 位置靠后的源代码对应的就是DOM树右边的结点,因此网页源代码决定了所有块的顺序。 表1示意性地给出了网页的4个分块的相对位置,表权利要求
1.一种网页分割方法,其特征在于,包括下列步骤步骤1)获取待分割网页的DOM树;步骤2)遍历所述DOM树,将其中每个只包含1个基本多行结点的结点作为一个基本分 块,将每两个只包含1个基本多行结点的结点之间的零散叶结点分别合成一个基本分块; 其中,当一个基本多行结点的父结点被作为一个基本分块时,该基本多行结点不再作为一 个基本分块。
2.根据权利要求1所述的网页分割方法,其特征在于,所述网页分割方法还包括步骤幻在所述基本分块中找出主题块,将主题块与其后面邻接的若干个非主题块合并;所述主题块中包含主题或分类标签。
3.根据权利要求1所述的网页分割方法,其特征在于,所述步骤幻包括下列子步骤21)自底向上遍历网页的DOM树,找出DOM树中的基本多行结点;22)自顶向下先序遍历DOM树,将其中每个只包含1个基本多行结点的结点作为一个基 本分块,将每两个只包含1个基本多行结点的结点之间的零散叶结点分别合成一个基本分 块。
4.根据权利要求3所述的网页分割方法,其特征在于,所述步骤21)包括下列子步骤211)自底向上遍历网页的DOM树,对每个当前结点,执行步骤212);212)记录当前结点所含的基本多行结点个数。
5.根据权利要求4所述的网页分割方法,其特征在于,所述步骤22)包括下列子步骤221)建立一个结点列表,自顶向下地先序遍历DOM树;222)如果当前结点包含的基本多行结点个数为0,将当前结点放入所述结点列表,否 则执行步骤223);223)如果当前结点包含的基本多行结点个数为1,则执行步骤224),否则执行步骤 225);224)将当前块作为一个基本分块,并将当前所述结点列表中的结点合并,作为另一个 基本分块,然后清空所述结点列表;225)如果当前结点包含的基本多行结点个数为1,则对它的所有孩子结点分别执行步 骤 222) 225)。
6.根据权利要求2所述的网页分割方法,其特征在于,所述步骤幻包括下列子步骤31)对每个基本分块,根据其字体、文字长度、背景颜色中的一项或多项特征来判断该 基本分块是否是主题块;32)将每个主题块与其后面邻接的若干个非主题块合并。
7.根据权利要求6所述的网页分割方法,其特征在于,所述步骤32)包括下列子步骤321)取出一个主题块;322)取与所述主题块的宽度相等的后面邻接的若干非主题块或者其宽度之和与所述 主题块的宽度相等的后面邻接的若干非主题块,根据预设的条件判断是否将该主题块这些 后面邻接的非主题块合并,如果是,则合并;如果否,则不合并。
8.根据权利要求7所述的网页分割方法,其特征在于,所述步骤322)中,所述预设的条 件是主题块与后面邻接的非主题块的纵坐标距离小于预设的阈值。
全文摘要
本发明提供一种网页分割方法,其特征在于,包括步骤1)获取待分割网页的DOM树;步骤2)遍历所述DOM树,将其中每个只包含1个基本多行结点的结点作为一个基本分块,将每两个只包含1个基本多行结点的结点之间的零散叶结点分别合成一个基本分块;其中,当一个基本多行结点的父结点被作为一个基本分块时,该基本多行结点不再作为一个基本分块;步骤3)在所述基本分块中找出主题块,将主题块与其后面邻接的若干个非主题块合并。本发明能够在分块的同时很好地保持原有的网页结构,避免打散属于同一主题或分类的链接,避免主题或分类标签与其对应的链接分离。本发明的执行效率高,容易实现。
文档编号G06F17/30GK102073710SQ20101061774
公开日2011年5月25日 申请日期2010年12月31日 优先权日2010年12月31日
发明者林守勋, 王向东, 邓铸辉, 钱跃良, 陈启华 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1