基于 DIV 位置的网页正文抽取方法和装置 技术领域 本发明涉及信息采集与处理技术领域, 特别地, 涉及一种基于 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 是本发明网页正文抽取方法的一个实施例的流程示意图。5图中 :
CN 102479181 A
说明书3/8 页图 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 开始标签 之间, 且不包含 标签的代码 ;
从 HTML 页面代码的起始处开始直至 HTML 页面代码的结束处获取两个 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 托管服务器中的页面进行分析以保证信息的安全 ; 还可以用于用户行为分析, 例如, 可 以通过分析用户访问的页面内容了解用户的兴趣爱好, 还可以针对性地对用户进行广告投 放。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明, 但是本领域的技 术人员应该理解, 以上示例仅是为了进行说明, 而不是为了限制本发明的范围。 本领域的技 术人员应该理解, 可在不脱离本发明的范围和精神的情况下, 对以上实施例进行修改。 本发 明的范围由所附权利要求来限定。