本发明专利技术涉及一种基于DOM树抽象的包装器自动生成方法。包装器生成阶段:用户输入网页集合,得到DOM树集合;而后,对DOM树进行合并,遍历DOM树对相同标签的子节点进行合并,并且针对每个节点进行路径特征标注,最终将DOM树集合转化为合并树集合;对合并树集合进行抽象操作得到抽象树,并将抽象树存入数据库中;根据配置文档确定结构化数据在合并树中的路径特征,将对应的路径特征经过处理后写入文档中,生成包装器;结构化数据抽取阶段:将待抽取的目标网页解析成DOM树,与抽象树进行匹配确定目标网页是否为包装器对应的类型网页;读取配置文档中的路径对目标DOM树进行抽取。本发明专利技术不仅能实现自动化生产包装器,并且在准确率和时间性能上也有较好的表现。
【技术实现步骤摘要】
基于DOM树抽象的包装器自动生成方法
本专利技术属于云计算领域,具体涉及一种基于DOM树抽象的包装器自动生成方法。
技术介绍
传统的包装器都由人工定义,要为不同类型的页面制作不同的包装器,因此包装器的维护是一个很大的开销,一旦原来的页面风格变了,原来的包装器也就需要重新定义。因此,目前主流的研究趋势是包装器的自动生成,本申请提出一种可行的基于DOM树抽象的包装器自动生成技术。该技术主要有两个部分组成:第一,目标类型网页的DOM树抽象;第二,目标节点的特征获取和定位。运用该技术可以对多种类型的网页实现包装器的自动生成。针对5个网站进行了实验,实验结果表明该方法的可行性和有效性。
技术实现思路
本专利技术的目的在于提供一种基于DOM树抽象的包装器自动生成方法,该方法不仅能实现自动化生产包装器,并且在准确率和时间性能上也有较好的表现。为实现上述目的,本专利技术的技术方案是:一种基于DOM树抽象的包装器自动生成方法,包括如下步骤,步骤S1、包装器生成阶段:步骤S11、用户输入网页集合,通过网页预处理去除源码中的杂质信息,并解析成DOM树,得到DOM树集合;步骤S12、对DOM树进行合并,遍历DOM树对相同标签的子节点进行合并,并且针对每个节点进行路径特征标注,最终将DOM树集合转化为合并树集合;步骤S13、对合并树集合进行抽象操作得到抽象树,并将抽象树存入数据库中;步骤S14、根据配置文档确定结构化数据在合并树中的路径特征,将对应的路径特征经过处理后写入文档中,生成包装器;步骤S2、结构化数据抽取阶段:步骤S21、将待抽取的目标网页解析成DOM树;步骤S22、将DOM树与抽象树进行匹配确定目标网页是否为包装器对应的类型网页;步骤S23、读取配置文档中的路径对目标DOM树进行抽取。在本专利技术一实施例中,所述步骤S12采用CombinerTree算法实现将DOM树集合转化为合并树集合,具体的CombinerTree算法实现如下:(1)设child[n0]为DOM树Ti的根节点vi子节点;(2)输入节点vi,若vi存在子节点,则获取vi的子节点并存入child[n0];(3)对child[n0]中的所有子节点进行两两判断:假设选取的两个vi的子节点为k、h,若k≠h,并且k的标签=h的标签,则获取子节点h的子节点并存入temp[m]中;而后,将temp[m]添加为子节点k的子节点,移除子节点h;(4)再次获取vi的子节点并存入child[n1],设ai为child[n1]中的第i个节点,i=0,1,2,……对所有节点ai判断执行步骤(2)-(4)的操作,输出合并树Ti;(5)对所有DOM树执行步骤(1)-(4)的操作,输出合并树集合D={T1,T2,…,Tn}。在本专利技术一实施例中,所述步骤S13采用AbstractTree算法实现将合并树集合进行抽象操作得到抽象树,具体的AbstractTree算法实现如下:(1)输入合并树集合D={T1,T2,…,Tn};(2)将T1转化成抽象树的数据结构,并存入Ti;(3)对于每个Tj∈{T2,…,Tn}进行判断:(3.1)获取Ti的根节点并存入vi0,获取Tj的根节点并存入vj0;(3.2)对vi0与vj0递归执行比较操作:(3.2.1)获取vi0的子节点并存入childi[n],获取vj0的子节点并存入childj[m];(3.2.2)对于每个节点k∈childj[m]进行判断:若childi[n]中不存在节点与k对应,将节点k添加为vi0的子节点,同时更新childi[n];(3.2.3)依此类推,对vi0的子节点与vj0的子节点,vi0的子节点的子节点与vj0的子节点的子节点,……递归执行比较操作。相较于现有技术,本专利技术具有以下有益效果:本专利技术方法不仅能实现自动化生产包装器,并且在准确率和时间性能上也有较好的表现。该方法在构造DOM树时,以标签作为节点标志,所有构造所需的时间较少,并且能够很好的利用DOM树的树形结构表示原页面标签的嵌套和层次关系。在对于DOM树的抽象中,对DOM树进行了剪枝,也保证了DOM树的最简,从而减少了存储资源的利用,本文分析了将严格的节点路径作为节点位置特征的缺陷,因此将采用合并树的路径作为节点位置特征,能够实现每个节点存在唯一标识,并且能够适应网页的细微变化。定位目标信息位置时,每个节点的唯一性使得能够准确的获取目标信息特征,并通过特征总结判断所需获取的节点其位置特点是否满足某种规律分布,然后在目标网页中依据总结的规律依此输出节点信息。在抽取目标内容时,运用目标节点的特征,理想情况下能在O(n)的情况下就能找到对象信息。附图说明图1为节点路径对比图。图2为本专利技术将DOM转换为合并树的示意图。图3为本专利技术将合并树集合转化为抽象树的示意图。具体实施方式下面结合附图,对本专利技术的技术方案进行具体说明。本专利技术一种基于DOM树抽象的包装器自动生成方法,包括如下步骤,步骤S1、包装器生成阶段:步骤S11、用户输入网页集合,通过网页预处理去除源码中的杂质信息,并解析成DOM树,得到DOM树集合;步骤S12、对DOM树进行合并,遍历DOM树对相同标签的子节点进行合并,并且针对每个节点进行路径特征标注,最终将DOM树集合转化为合并树集合;步骤S13、对合并树集合进行抽象操作得到抽象树,并将抽象树存入数据库中;步骤S14、根据配置文档确定结构化数据在合并树中的路径特征,将对应的路径特征经过处理后写入文档中,生成包装器;步骤S2、结构化数据抽取阶段:步骤S21、将待抽取的目标网页解析成DOM树;步骤S22、将DOM树与抽象树进行匹配确定目标网页是否为包装器对应的类型网页;步骤S23、读取配置文档中的路径对目标DOM树进行抽取。所述步骤S12采用CombinerTree算法实现将DOM树集合转化为合并树集合,具体的CombinerTree算法实现如下:(1)设child[n0]为DOM树Ti的根节点vi子节点;(2)输入节点vi,若vi存在子节点,则获取vi的子节点并存入child[n0];(3)对child[n0]中的所有子节点进行两两判断:假设选取的两个vi的子节点为k、h,若k≠h,并且k的标签=h的标签,则获取子节点h的子节点并存入temp[m]中;而后,将temp[m]添加为子节点k的子节点,移除子节点h;(4)再次获取vi的子节点并存入child[n1],设ai为child[n1]中的第i个节点,i=0,1,2,……对所有节点ai判断执行步骤(2)-(4)的操作,输出合并树Ti;(5)对所有DOM树执行步骤(1)-(4)的操作,输出合并树集合D={T1,T2,…,Tn}。所述步骤S13采用AbstractTree算法实现将合并树集合进行抽象操作得到抽象树,具体的AbstractTree算法实现如下:(1)输入合并树集合D={T1,T2,…,Tn};(2)将T1转化成抽象树的数据结构,并存入Ti;(3)对于每个Tj∈{T2,…,Tn}进行判断:(3.1)获取Ti的根节点并存入vi0,获取Tj的根节点并存入vj0;(3.2)对vi0与vj0递归执行比较操作:(3.2.1)获取vi0的子节点并存入childi[n],获取vj0的子节点并存入childj[m];(3.本文档来自技高网...
【技术保护点】
一种基于DOM树抽象的包装器自动生成方法,其特征在于:包括如下步骤,步骤S1、包装器生成阶段:步骤S11、用户输入网页集合,通过网页预处理去除源码中的杂质信息,并解析成DOM树,得到DOM树集合;步骤S12、对DOM树进行合并,遍历DOM树对相同标签的子节点进行合并,并且针对每个节点进行路径特征标注,最终将DOM树集合转化为合并树集合;步骤S13、对合并树集合进行抽象操作得到抽象树,并将抽象树存入数据库中;步骤S14、根据配置文档确定结构化数据在合并树中的路径特征,将对应的路径特征经过处理后写入文档中,生成包装器;步骤S2、结构化数据抽取阶段:步骤S21、将待抽取的目标网页解析成DOM树;步骤S22、将DOM树与抽象树进行匹配确定目标网页是否为包装器对应的类型网页;步骤S23、读取配置文档中的路径对目标DOM树进行抽取。
【技术特征摘要】
1.一种基于DOM树抽象的包装器自动生成方法,其特征在于:包括如下步骤,步骤S1、包装器生成阶段:步骤S11、用户输入网页集合,通过网页预处理去除源码中的杂质信息,并解析成DOM树,得到DOM树集合;步骤S12、对DOM树进行合并,遍历DOM树对相同标签的子节点进行合并,并且针对每个节点进行路径特征标注,最终将DOM树集合转化为合并树集合;步骤S13、对合并树集合进行抽象操作得到抽象树,并将抽象树存入数据库中;步骤S14、根据配置文档确定结构化数据在合并树中的路径特征,将对应的路径特征经过处理后写入文档中,生成包装器;步骤S2、结构化数据抽取阶段:步骤S21、将待抽取的目标网页解析成DOM树;步骤S22、将DOM树与抽象树进行匹配确定目标网页是否为包装器对应的类型网页;步骤S23、读取配置文档中的路径对目标DOM树进行抽取。2.根据权利要求1所述的基于DOM树抽象的包装器自动生成方法,其特征在于:所述步骤S12采用CombinerTree算法实现将DOM树集合转化为合并树集合,具体的CombinerTree算法实现如下:(1)设child[n0]为DOM树Ti的根节点vi子节点;(2)输入节点vi,若vi存在子节点,则获取vi的子节点并存入child[n0];(3)对child[n0]中的所有子节点进行两两判断:假设选取的两个vi的子节点为k、h,若k≠h,并且k的标签=h的标签,则获取子节点h...
【专利技术属性】
技术研发人员:陈星,张佳俊,王一洲,
申请(专利权)人:福州大学,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。