基于抽取模板可视化定制的Web数据抽取方法

文档序号:6434883阅读:185来源:国知局
专利名称:基于抽取模板可视化定制的Web数据抽取方法
技术领域
本发明涉及一种涉及Web页面的抽取,属于计算机应用领域,尤其涉及一种基于抽取模板可视化定制的Web数据抽取方法。
背景技术
随着互联网技术的飞速发展,Web上的网站和网页数量以爆炸性的趋势增长,从而使Web成为一个巨大的、分布广泛的数据源。文本、表格和多媒体文件如图片、视频等是 Web信息的主要表现形式,Web数据抽取即是按照一定的规则,从Web数据中抽取语义一致性的、结构化的数值知识,建立数值知识元库,满足用户数据查询、数据分析需求。为了自动化地将输入的Web页面转化成结构化数据,在数据抽取领域已经展开了很多工作。Web数据抽取主要用于产生结构化数据,这些结构化数据便于后续分析和挖掘处理。Web数据抽取对于众多Web数据分析和挖掘应用具有至关重要的作用和意义。一个Web数据抽取任务在形式上可以定义为输入和输出。输入可以是非结构化数据,例如自由文本,也可以是在Web中普遍存在的半结构化文档。由于存在以上技术上的要求,当前在Web页面数据抽取方面,还存在以下不足之处1由于Web上数据的异构性和结构的缺失,导致面向分析和挖掘的Web数据应用, 例如市场情报分析等,需要花费大量的代价去处理不同格式的Web数据源。2—个Web数据抽取任务的输出可以是一个具有多条记录的关系表或者是具有复杂结构的数据对象。对于一些Web数据抽取任务,属性可以缺失或者在一条记录中某个属性具有多个属性值,另外,当Web页面中的半结构化数据存在属性顺序不唯一或拼写错误的时候,Web数据抽取任务将变得更加复杂和困难。

发明内容
本发明的目的就是为了解决上述问题,提供一种基于抽取模板可视化定制的Web 数据抽取方法,它具有可视化、友好的用户交互能力优点。为了实现上述目的,本发明采用如下技术方案一种基于抽取模板可视化定制的Web数据抽取方法,包括以下步骤A.模板页面预处理。B.抽取模板可视化定制。C.页面批量抽取频率设置。D、页面批量抽取。所述模板页面预处理即模板页面源代码的转换及展示通过分析模板页面的 HTML源代码,解析其DOM树结构,并将其转化为XML格式,并在用户界面中展示;所述抽取模板可视化定制是指在用户界面上提供拖拽选中功能,由用户自行设定模板页面上的属性标签和数据值与领域模型中属性的对应关系,建立抽取模板;
所述页面批量抽取频率设置按每隔一段时间(如8小时)对爬取获得的HTML页面进行批量抽取一次;所述页面批量抽取是指使用相应的抽取模板对爬取获得的大量HTML页面进行批量抽取,将其中的半结构化数据转合成结构化数据保存至本地数据库。所述步骤A中模板页面源代码的转换及展示具体包括以下步骤Al.对提供的模板页面进行HTML源代码分析,转化成符合XML规范的页面文件。A2.对页面分析其完整的文档对象模型DOM结构,并展示在用户界面。A3.对转化后的页面,在不破坏页面原有结构的条件下,添加必要的Js控制代码, 用以实现页面标注。A4.将经过以上步骤处理过的XML格式的页面在用户界面中展示出来提供给用户进行模板可视化定制使用。所述步骤B中抽取模板可视化定制具体包括以下步骤Bi.用户打开模板页面之后,用鼠标拖选中要抽取的数据项,程序会根据用户拖选出的数据项,分析这个数据项的XPATH路径并记录下来。B2.若该数据项在页面中还有对应的页面标签,则将该数据标签也拖选出,程序会记录下该数据标签的XPATH路径和该标签的文本内容,并与选出的数据项XPATH共同组合一条抽取规则。若该数据项没有对应的数据标签,则不用选择。B3.用户依据领域模型,为通过上述Bi、B2步后形成的抽取规则选择一个属性标签,这个标签是包含在事先已经建立好的领域模型中,且符合这条抽取规则对应数据项语义,该属性标签标示这条抽取规则对应的数据项的语义,其本质为完成了页面数据项对数据表中列的映射。B4.重复以上Bl至B3步,直到所有要抽取的数据被标注出来,将经过以上步骤得到的抽取规则集合保存为一个页面抽取模板。所述步骤C中页面批量抽取具体包括以下步骤Cl.将当前要抽取的页面转化成规范的XML文件。C2.利用抽取模板中记录的抽取规则,其本质为XPATH路径,抽取出所需要的数据项。C3.根据每条抽取规则对应的数据标签,将抽取出的数据项保存到数据库表相应的列中。其中第C2步还可以细分成以下步骤C2-1.选择一条还未使用过的抽取规则。C2-2.若这条抽取规则没有记录对应的页面标签信息,则根据数据项对应的 XPATH路径直接读取出对应的文本内容,并将这条抽取规则标记为已使用,转到步骤C2-8。 若这条抽取规则有记录对应的页面标签信息,转到步骤C2-3。C2-3.根据该页面标签对应的XPATH路径抽取出对应的文本。若抽取成功,转到步骤C2-4。若抽取失败,则说明在当前页面中,该页面标签对应的数据项可能被缺省或移位, 转到步骤C2-7。C2-4.将抽取出的文本与这条抽取规则中记录的页面标签文本进行比对。若匹配, 根据抽取规则中记录的数据项的XPATH,抽取出对应数据,并将这条抽取规则标记为已使用,转到步骤C2-8。若不匹配,则说明在当前页面中,该页面标签对应的数据项可能被缺省或移位,则转到步骤C2-5。C2-5.检查该文本是否匹配某条未使用过的抽取规则中的页面标签。如果存在对应的抽取规则,则这个文本可能也是一个页面标签,转到步骤C2-6,否则转到步骤C2-7。C2-6.根据抽规则中记录的页面标签与数据项的XPATH,计算出当这个文本为页面标签时,对应数据项的XPATH,并抽取相应数据,若抽取出数据非空,则将对应的抽取规则标记为已使用,转到步骤C2-7。C2-7.根据原有的页面标签的XPATH路径在页面中进行扩展搜索,寻找该页面标签。若最终没有找到,则可能在当前页中该标签对应的数据项被缺省。若找到,则根据抽规则中记录的页面标签与数据项的XPATH,计算出该页面标签对应数据项的XPATH,抽取相应数据。最后将原抽取规则标记为已使用,转到步骤C2-8。C2-8.重复以上步骤,直到所有的抽取规则都被使用。步骤C2-3是为防止Web页面中的半结构化数据存在属性顺序不唯一或拼写错误的情况。通过一个扩展搜索保证不会出现数据丢失的情况。本发明的有益效果1、本发明针对每个数据源,采用可视化用户定制方法,设计参数化、可配置的包装器,使之具备可视化的、友好的用户交互能力,对采集的大规模Web页面依据包装器实施自动抽取。2、由于Web页面上的内容和结构经常发生变化,导致已产生的抽取规则失效,对如何有效地提高Web数据抽取的自适应能力进行了研究,使之能够根据目标网页发生的变化自动做出调整,更新相应的抽取规则。3、本发明的数据抽取方法适用性强,精度高,能够自适应网页变化,可大大提高抽取效率。


图1为基于抽取模板可视化定制的Web数据抽取方法流程;图2为模板页面预处理流程;图3为页面抽取模板可视化定制流程;图4为页面抽取总体流程;图5为抽取过程细化流程;图6为某网站详细页面作为模板页示意图;图7为对网站的网页进行抽取过程示意图。
具体实施例方式下面结合附图与实施例对本发明作进一步说明。图1中,一种基于抽取模板可视化定制的Web数据抽取方法,它包括以下步骤A.模板页面预处理;B.抽取模板可视化定制;C.对页面批量抽取频率进行设置;
D、页面批量抽取。所述步骤A模板页面预处理,即模板页面源代码的转换及展示它通过分析内存程序中模板页面的HTML源代码,解析其DOM树结构,并将其转化为XML格式,并在显示器的用户界面中展示。所述步骤B抽取模板可视化定制是指在用户界面上提供拖拽选中功能,由用户自行设定模板页面上的属性标签和数据值与领域模型中属性的对应关系,建立抽取模板。所述步骤C页面批量抽取频率设置按每隔8小时对爬取获得的HTML页面进行批量抽取一次。所述步骤D页面批量抽取是指使用相应的抽取模板对爬取获得的大量HTML页面进行批量抽取,将其中的半结构化数据转合成结构化数据保存至本地数据库。图2中,所述步骤A中模板页面源代码的转换及展示具体包括以下步骤Al.对提供的模板页面进行HTML源代码分析,转化成符合XML规范的页面文件;A2.对页面分析其完整的DOM结构,并展示在用户界面;A3.对转化后的页面,在满足页面原有结构的条件下,添加必要的Js控制代码,用以实现页面标注;A4.将经过以上步骤处理过得XML格式的页面在用户界面中展示出来提供给用户进行模板可视化定制使用。图3中,所述步骤B中抽取模板可视化定制具体包括以下步骤Bi.用户打开显示器显示的模板页面之后,用鼠标拖选中要抽取的数据项,程序会根据用户拖选出的数据项,分析这个数据项的XPATH路径并记录下来;B2.若该数据项在页面中还有对应的页面标签,则将该数据标签也拖选出,程序会记录下该数据标签的XPATH路径和该标签的文本内容,并与选出的数据项XPATH共同组合一条抽取规则;若该数据项没有对应的数据标签,则不用选择;B3.用户依据领域模型,为通过上述B2、B3步后形成的抽取规则选择一个属性标签,这个标签是包含在事先已经建立好的领域模型中,且符合这条抽取规则对应数据项语义,该属性标签标示这条抽取规则对应的数据项的语义,其实质就是完成了页面数据项对数据表中列的映射;B4.重复以上B2至B4步,直到所有要抽取的数据被标注出来,将经过以上步骤得到的抽取规则集合保存为一个页面抽取模板。图4中,所述步骤C中抽取模板可视化定制具体包括以下步骤Cl.将当前要抽取的页面转化成规范的XML文件;C2.利用抽取模板中记录的抽取规则,其本质就是XPATH路径,抽取出所需要的数据项;C3.根据每条抽取规则对应的数据标签,将抽取出的数据项保存到数据库表相应的列中。图5中,所述步骤C2具体包括以下步骤C2-1选择一条还未使用过的抽取规则;C2-2若这条抽取规则没有记录对应的页面标签信息,则根据数据项对应的XPATH 路径直接读取出对应的文本内容,并将这条抽取规则标记为已使用,转到步骤C2-8;若这条抽取规则有记录对应的页面标签信息,转到步骤C2-3 ;C2-3根据该页面标签对应的XPATH路径抽取出对应的文本;若抽取成功,转到步骤C2-4;若抽取失败,则说明在当前页面中,该页面标签对应的数据项存在被缺省或移位的情况,则转到步骤C2-7;C2-4将抽取出的文本与这条抽取规则中记录的页面标签文本进行比对;若匹配, 根据抽取规则中记录的数据项的XPATH,抽取出对应数据,并将这条抽取规则标记为已使用,转到步骤C2-8;若不匹配,则说明在当前页面中,该页面标签对应的数据项存在被缺省或移位的情况,则转到步骤C2-5 ;C2-5检查该文本是否匹配某条未使用过的抽取规则中的页面标签;如果存在对应的抽取规则,则这个文本将作为一个页面标签,转到步骤C2-6,否则转到步骤C2-7 ;C2-6根据抽规则中记录的页面标签与数据项的XPATH,计算出当这个文本为页面标签时,对应数据项的XPATH,并抽取相应数据,若抽取出数据非空,则将对应的抽取规则标记为已使用,转到步骤C2-7 ;C2-7根据原有的页面标签的XPATH路径在页面中进行扩展搜索,寻找该页面标签;若最终没有找到,则说明存在在当前页中该标签对应的数据项被缺省的情况;若找到,则根据抽规则中记录的页面标签与数据项的XPATH,计算出该页面标签对应数据项的 XPATH,抽取相应数据;最后将原抽取规则标记为已使用,转到步骤C2-8 ;C2-8重复以上步骤,直到所有的抽取规则都被使用。所述步骤C2-3是为实现当Web页面中的半结构化数据出现属性顺序不唯一或者拼写错误的情况,通过一个扩展搜索保证不会出现数据丢失的情况。本发明的另一个实施实例,我们选择采用某网站作为数据源。详细页面作为模板页,用于定制模板,页面主要数据区域截图如附图6。假设用户手工标注的要抽取的数据如图中被矩形框包围的部分。则我们可以获得以下10条抽取规则1.数据标签职位名称;页面标签空;数据项XPATH :/HTML/B0DY[l]/DIV[2]/DIV[l]/DIV[2]/TABLE[3]/TB0DY[l]/ TR[3]/TD [2];2.数据标签招聘公司;页面标签空;数据项XPAHT :/HTML/B0DY[l]/DIV[2]/DIV[l]/DIV[2]/TABLE[l]/TB0DY[l]/ TR [2]/TD [ 1]/TABLE[1]/TBODY[1]/TR[1]/TD[1]/STRONG[1]3.数据标签发布日期;页面标签发布日期;页面标签XPATH /HTML/BODY[1] /DIV[2] /DIV[1] /DIV[2] /TABLE [3] /TBODY[1] / TR[1]/TD[1]数据项XPATH :/HTML/B0DY[l]/DIV[2]/DIV[l]/DIV[2]/TABLE[3]/TB0DY[l]/ TR[1]/TD[2]4.数据标签工作地点;
页面标签工作地点;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[1]/TD [3]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[1]/TD[4]
5.数据标签招聘人数;
页面标签招聘人数;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[1]/TD [5]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[1]/TD[6]
6.数据标签工作经验;
页面标签工作年限;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD [1]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD [2]
7.数据标签语言要求;
页面标签语言要求;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD [3]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD[4]
8.数据标签学历;
页面标签学历要求;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD [5]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD[6]
9.数据标签薪金水平;
页面标签薪水范围;
页面标签XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD [5]
数据项 XPATH /HTML/7BODYtl]/DIV[2],/DIV[1]//DIVD],/TABLE[3]/TB0DY[1]/TR[2]/TD[6]
禾Ij用这9条抽取规则构成的抽取模板,我们可以对来源于该网站的同类网页进行批量。
假设我们对同一网站的网页(附图7)进行抽取
我们可以发现这页中缺少我们要抽取的2个数据项语言要求和薪金水平。其中通过页面代码分析我们可以发现1 6条抽取规则然后有效可以直接利用。当我们使用第 7条抽取规则“语言要求”时,我们会发现当前页相应标签XPATH位置上的文本是学历,和抽取规则中记录的语言要求不符,但是学历这个页面标签在抽取规则8中存在,因此将学历后的数据项“大专”抽取出来,并在页面中根扩展搜索“语言要求”这个页面标签,由于页面中不存在该标签,因此搜索不到。这样虽然被抽取页面结构与创建模板的结构有所不同,但是页面上的数据依然会被正确的识别并抽取出来。 上述虽然结合附图对本发明的具体实施方式
进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
权利要求
1.一种基于抽取模板可视化定制的Web数据抽取方法,其特征是,它包括以下步骤A.模板页面预处理;B.抽取模板可视化定制;C.对页面批量抽取频率进行设置;D.页面批量抽取。
2.如权利要求书1所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤A模板页面预处理,即模板页面源代码的转换及展示它通过分析内存程序中模板页面的HTML源代码,解析其DOM树结构,并将其转化为XML格式,并在显示器的用户界面中展不。
3.如权利要求书1所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤B抽取模板可视化定制是指在用户界面上提供拖拽选中功能,由用户自行设定模板页面上的属性标签和数据值与领域模型中属性的对应关系,建立抽取模板。
4.如权利要求书1所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是, 所述步骤C页面批量抽取频率设置按每隔8小时对爬取获得的HTM L页面进行批量抽取一次。
5.如权利要求书1所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤D页面批量抽取是指使用相应的抽取模板对爬取获得的大量HTML页面进行批量抽取,将其中的半结构化数据转合成结构化数据保存至本地数据库。
6.如权利要求书1或2所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤A中模板页面源代码的转换及展示具体包括以下步骤Al.对提供的模板页面进行HTML源代码分析,转化成符合XML规范的页面文件;A2.对页面分析其完整的DOM结构,并展示在用户界面;A3.对转化后的页面,在满足页面原有结构的条件下,添加必要的JS控制代码,用以实现页面标注;A4.将经过以上步骤处理过得XML格式的页面在用户界面中展示出来提供给用户进行模板可视化定制使用。
7.如权利要求书1或3所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤B中抽取模板可视化定制具体包括以下步骤Bi.用户打开显示器显示的模板页面之后,用鼠标拖选中要抽取的数据项,程序会根据用户拖选出的数据项,分析这个数据项的XPATH路径并记录下来;B2.若该数据项在页面中还有对应的页面标签,则将该数据标签也拖选出,程序会记录下该数据标签的XPATH路径和该标签的文本内容,并与选出的数据项XPATH共同组合一条抽取规则;若该数据项没有对应的数据标签,则不用选择;B3.用户依据领域模型,为通过上述B2、B3步后形成的抽取规则选择一个属性标签,这个标签是包含在事先已经建立好的领域模型中,且符合这条抽取规则对应数据项语义,该属性标签标示这条抽取规则对应的数据项的语义,其实质就是完成了页面数据项对数据表中列的映射;B4.重复以上B2至B4步,直到所有要抽取的数据被标注出来,将经过以上步骤得到的抽取规则集合保存为一个页面抽取模板。
8.如权利要求书1或4所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤C中抽取模板可视化定制具体包括以下步骤Cl.将当前要抽取的页面转化成规范的XML文件;C2.利用抽取模板中记录的抽取规则,其本质就是XPATH路径,抽取出所需要的数据项;C3.根照每条抽取规则对应的数据标签,将抽取出的数据项保存到数据库表相应的列中。
9.如权利要求书8所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是,所述步骤C2具体包括以下步骤C2-1选择一条还未使用过的抽取规则;C2-2若这条抽取规则没有记录对应的页面标签信息,则根据数据项对应的XPATH路径直接读取出对应的文本内容,并将这条抽取规则标记为已使用,转到步骤C2-8 ;若这条抽取规则有记录对应的页面标签信息,转到步骤C2-3 ;C2-3根据该页面标签对应的XPATH路径抽取出对应的文本;若抽取成功,转到步骤 C2-4;若抽取失败,则说明在当前页面中,该页面标签对应的数据项存在被缺省或移位的情况,则转到步骤C2-7;C2-4将抽取出的文本与这条抽取规则中记录的页面标签文本进行比对;若匹配,根据抽取规则中记录的数据项的XPATH,抽取出对应数据,并将这条抽取规则标记为已使用,转到步骤C2-8 ;若不匹配,则说明在当前页面中,该页面标签对应的数据项存在被缺省或移位的情况,则转到步骤C2-5;C2-5检查该文本是否匹配某条未使用过的抽取规则中的页面标签;如果存在对应的抽取规则,则这个文本将作为一个页面标签,转到步骤C2-6,否则转到步骤C2-7 ;C2-6根据抽规则中记录的页面标签与数据项的XPATH,计算出当这个文本为页面标签时,对应数据项的XPATH,并抽取相应数据,若抽取出数据非空,则将对应的抽取规则标记为已使用,转到步骤C2-7;C2-7根据原有的页面标签的XPATH路径在页面中进行扩展搜索,寻找该页面标签;若最终没有找到,则说明存在在当前页中该标签对应的数据项被缺省的情况;若找到,则根据抽规则中记录的页面标签与数据项的XPATH,计算出该页面标签对应数据项的XPATH,抽取相应数据;最后将原抽取规则标记为已使用,转到步骤C2-8 ; C2-8重复以上步骤,直到所有的抽取规则都被使用。
10.如权利要求书9所述的基于抽取模板可视化定制的Web数据抽取方法,其特征是, 所述步骤C2-3是为实现当Web页面中的半结构化数据出现属性顺序不唯一或者拼写错误的情况,通过一个扩展搜索保证不会出现数据丢失的情况。
全文摘要
本发明公开了一种基于抽取模板可视化定制的Web数据抽取方法,它包括以下步骤A.模板页面预处理;B.抽取模板可视化定制;C.对页面批量抽取频率进行设置;D.页面批量抽取。所述步骤A模板页面预处理,即模板页面源代码的转换及展示;所述步骤B抽取模板可视化定制是指在用户界面上提供拖拽选中功能,由用户自行设定模板页面上的属性标签和数据值与领域模型中属性的对应关系,建立抽取模板。所述步骤C页面批量抽取频率设置按每隔8小时对爬取获得的HTML页面进行批量抽取一次。所述步骤D页面批量抽取是指使用相应的抽取模板对爬取获得的大量HTML页面进行批量抽取,将其中的半结构化数据转合成结构化数据保存至本地数据库。
文档编号G06F17/30GK102360368SQ20111030177
公开日2012年2月22日 申请日期2011年10月9日 优先权日2011年10月9日
发明者彭朝晖, 李庆忠, 蔡益清, 闫中敏 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1