面向BIU的网页解析
2017-09-18程倩楠谭龙李浩飞
程倩楠,谭龙,李浩飞
山东师范大学
面向BIU的网页解析
程倩楠,谭龙,李浩飞
山东师范大学
随着大数据时代的到来,互联网已经成为人们最大的信息来源之一,对于网页处理多采用结构化方法。现有的面向结点的网页解析方法分割粒度过小,容易割裂文字的语义相关性;而基于分块的网页解析器无法过滤文字内部的噪音信息。针对以上两种传统结构化方法的不足,我们提出了一种面向基本信息单元(Basic Information unit)的网页解析方法。本文给出了BIU的定义,利用改进后的DOM解析工具生成了网页DOM树,通过剪枝和BIU识别等操作步骤,最终得到了以基本信息单元为粒度的网页结构,适合用于网页内容的提取。
结构化;基本信息单元;BIU;解析粒度;DOM解析工具
互联网上蕴含的海量信息,成为人们重要的数据来源。非结构化的网页处理方法无法充分利用页面特征提取页面信息,而面向DOM结点与面向分块的结构化方法解析粒度的划分也存在不合理性。下面我们介绍一种以基本信息单元为分割粒度的网页解析方法。
1 定义基本信息单元(Basic Information Unit)
通过分析HTML的内容及结构,我们发现,网页的行与段内部可能包含多个DOM结点,但构成了一个完整的句子,其中的文本信息语义连续,具有较好的信息关联性,适合作为网页解析粒度。为此我们定义如下:
定义1:在HTML中,被换行符分隔的连续文本称为一个网页的基本信息单元(Basic Information Unit),简记为BIU。
HTML中的换行符分为显示与隐式两种,显示的换行符标签为<br>,隐式的换行符标签包括布局标签<head><body><div><ta⁃ble>等,以及文本标签<h1><h2><p>等。
2 基于BIU的网页解析实现
2.1 改进传统DOM解析工具
DOM树是HTML网页的结构化表示形式,也是网页在内存中的组织形式,它以层次结构将网页信息片段作为结点组织起来。一般通过对HTML文档进行词法分析和语法分析实现网页DOM解析。由于互联网上存在着大量不符合HTML语法规范的网页,目前,一些DOM解析器也具备较好的容错性,如CTidy软件,能够自动识别HTML中的不规范之处,并发出警告,进行自动修正。
为了提高网页解析的效率与准确性,本文对CTidy软件做了如下部分改进:
(1)改变网页解析的输入方式,由HTML文档输入变为字符串输入。
(2)跳过无法解析的错误网页,继续下面的网页解析工作,而不是进行报错终止,保证运行的连贯性。
(3)删除script标签下的脚本文字,只留下网页可显示的信息。
(4)去除对部分转义字符的解析。
2.2 基本信息单元的识别
在以上DOM解析的基础上,我们进行基本信息单元的识别工作。由于HTML结构具有灵活性,所以对基本信息单元的识别也存在一定的挑战性。我们必须清楚并不是所有的HTML换行标签都能作为分割基本信息单元的边界,因此BIU识别的主要任务就是寻找有效的换行符。
本文将DOM树的剪枝与BIU的识别相结合,通过以下四个步骤,实现面向BIU的网页解析,图1演示了这个过程。
(1)DOM树剪枝
规则一:若叶结点不含文字内容,则删除此结点,旨在过滤掉网页中的非文本噪音结点,对应图1中的(1)a。
规则二:若叶结点的父节点不存在兄弟结点,则用当前页叶结点代替其父节点,旨在消除无效换行符,对应图1中的(1)b。
(2)识别BIU
进行以上剪枝后,再为各文本结点寻找对应的换行符结点,即在DOM树中寻找距离文本结点最近的换行结点。若有文本结点对应相同的换行符结点,则这些文本结点属于同一个基本信息单元。如图1中(2)所示,其中包含三个换行符结点,对应于三个基本信息单元。
(3)合并文本结点
将属于同一BIU的文本结点合并,此时DOM中又会出现非文本结点。对应图1中(3)。
(4)再次剪枝
为了消除新出现的非文本噪音结点,按步骤1对DOM树再次剪枝。
最终实现树中的每个叶结点均为一个基本信息单元,对应图1中(4)。
经过上述步骤,我们将网页分割为基本信息单元的集合,克服了DOM结点过于琐碎的缺点,便于网页正文的提取和网页信息的抽取。
3 结语
本文针对传统基于DOM结点和网页块进行HTML解析的缺点,提出一种适用于内容提取的网页信息单元组织结构。首先,我们对传统的DOM解析器进行改进,增强DOM解析的效率和准确性。其次,对生成DOM树同时进行剪枝和BIU的识别操作,最终得到以基本信息单元为粒度的网页结构。基本信息单元的内容具有较强的语义关联性,便于网页正文提取及信息抽取等后续操作。
[1]于满全,陈铁睿,徐洪波.基于分块的网页信息解析器的研究与设计.计算机应用.2005
[2]王璟琦.基于内容单元的网页解析与内容提取[D].黑龙江:哈尔滨工业大学,2008.12.1
程倩楠(1997-),女,汉族,山东泰安人,本科,山东师范大学信息科学与工程学院,研究方向:计算机信息技术。