网页结构化数据提取方法与系统的制作方法

文档序号:6459260阅读:262来源:国知局
专利名称:网页结构化数据提取方法与系统的制作方法
技术领域
本发明是一种网络信息采集技术,具体涉及一种网页结构化数据提取的系统和方法,属 于网络信息技术领域。
背景技术
随着网络信息技术的发展,网站、论坛、博克等网页信息越来越大,搜索引擎、内容分 析、舆情分析等技术都是对这些信息进行某种分析处理的,它们都用到了网络爬虫这一种技 术。网络爬虫,又名网络掩蛛,是一种对网页连接进行自动分析,并自动获取信息存储到本 地的数据釆集方法。目前,不仅仅搜索引擎,还有很多的应用将网络爬虫作为数据采集的主 要来源,如网络内容智能化分析;不仅仅需要传统的关键词检索,还需要多种页面上结构化 数据/非结构化数据的挖掘分析。因此,传统的仅仅下载网页的网络爬虫已经越来越不适合发 展的需要了 ,需要开发新的能够自动提取网络结构化数据/非结构化数据的网络爬虫。
目前,对网页结构化数据进行提取的功能在很多网络爬虫系统和产品中都出现过,但是, 在方法和技术上都有一定的局限性,导致在实际的应用上遇到了 一些困难
1. 对结构化数据的提取直接在程序内设定某个网站或者某类页面字段规则,从而提取出 结构化数据。这样的做法限制了网页结构化数据提取的应用范围,只能局限在类似的网页内 进行。
2. 对某类字段,如时间,按照网页一般放置的区域,设定查询的半径范围来进行结构化 数据提取。这种方法具有一定的自适应性,但是,网页的数据结构是千变万化的,不仅仅同 类字段的放置区域、半径范围很难统一起来,而且绝大部分的字段是很难用这种方法来实现 的。
3. 直接采用模板配置的方式。 一些网络爬虫通过读取外部的配置文件,从而减少对不同 类型的网站都需要制作不同的应用程序的麻烦。但是,这些配置文件的制作,往往需要非常 熟悉网页设计的人员来制作,这就对用户的计算机软件知识提出了要求,限制了用户范围。
4. 不同网站的频道、版块、深度、广告、用户关注信息等网站结构是不同的,针对这种 情况,目前还没有网络爬虫开发让用户自主的选择后,再进行相关页面自动采集的方法;
5. 大量的javascript脚本语言在网页上被采用,针对如何提取由javascript所控制的机构 化数据,目前的网络爬虫仍然缺乏行之有效的方法。
由此可见,在网络爬虫应用范围不断扩大的情况下,对网页的结构化数据提取提出了更 高的要求,而现有的网络爬虫技术和产品还无法完全满足更高的智能化的数据采集要求。

发明内容
本发明的目的主要是针对现有网络爬虫在结构化数据提取中存在的缺陷,提出一种网页 结构化数据提取方法与系统,它主要是通过对同类网页相同字段的正则表达式训练自动制作 配置模板,使得用户不需要掌握专业的计算机知识就可以实现数据采集,扩展了现有网络爬 虫的应用范围,提升了网络爬虫的整体效能。
为实现上述目的,本发明提供一种网页结构化数据提取方法,其特征在于包括以下步骤
选择训练网页内容集并提取目标结构化数据;
训练所述训练网页内容集获得与所述目标结构化数据匹配的正则表达式; 将所述正则表达式写入配置模板; 利用所述配置模板采集网页; 从所述采集网页中提取结构化数据。
所述的网页结构化数据提取方法,其特征在于所述训练所述训练网页内容集获得与所述 目标结构化数据匹配的正则表达式的步骤包括以下步骤
第一 步,提取出所述训练网页内容集内各页面内的所述目标结构化数据的位置;
第二步,利用字符串处理方法,得出所述目标结构化数据的前后紧邻第一个字符,形成 界定所述目标结构化数据的正则表达式;
第三步,利用所述正则表达式,在所述训练网页集内提取结构化数据;
第四步,如果所述结构化数据与所述目标结构化数据一致,转下一步骤;否则,继续加 入前后字符,返回至第二步;
第五步,增加测试网页,利用所述正则表达式在所述测试网页内提取测试网页结构化数 据,如果所述测试网页结构化数据与所述目标结构化数据一致,则所述正则表达式与所述目 标结构化数据匹配;否则,将所述测试网页添加至所述训练网页内容集,返回至第一步。
为了支持从含有JavaScript脚本语言的网页提取结构化数据,所述的网页结构化数据提取 方法,其特征还在于所述训练所述训练网页内容集荻得与所述目标结构化数据匹配的正则表 达式的步骤还可以利用JavaScript解析库生成URL超链接。
为了支持从含有JavaScript脚本语言的网页提取结构化数据,所迷的网页结构化数据提取 方法,其特征在于所述利用所述配置模板采集网页的步骤还可以利用JavaScript解析库生成 URL超链接。
本发明还提供了 一种网页结构化数据提取系统,其特征在于包括 人机交互模块,用于选择训练网页内容集并提取目标结构化数据; 正则表达式训练模块,用于训练所述训练网页内容集获得与所述目标结构化数据匹配的正则表达式,并将所述正则表达式写入配置模板; 网页获^M莫块,用于利用所述配置模板采集网页; 结构化数据提取模块,用于从所述采集网页中提取结构化数据。
所述的网页结构化数据提取系统,其特征在于还包括感兴趣版面记录模块,记录已访问 网页的页面路径,并供所述人机交互模块调用。
所述的网页结构化数据提取系统,其特征在于所述网页获取模块采用socket仿http协议, 实现多线程的网页采集。
所述的网页结构化数据提取系统,其特征在于还包括代理调度模块,根据所述网页获取 模块的需要轮换选择所需的代理服务器。
所述的网页结构化数据提取系统,其特征在于还包括JavaScript解析模块,利用JavaScript 解析库,对网页内的JavaScript代码进行解析,为所述正则表达式训练模块和所述网页获取 模块提供网页超链接。
所述的网页结构化数据提取系统,其特征在于还包括数据入库模块,将所述结构化数据 提取模块提取的所述结构化数据存储至本地数据库。
本发明提出的网页结构化数据提取方法与系统,实现了对静态网页和动态网页的结构化 数据提取,充分利用了正则表达式训练和JavaScript解析的技术,有效地解决了网站数据结 构千变万化的问题,适用于获取任何类型的网站信息内容,并提取结构化数据。


图1是本发明一实施方式网页结构化数据提取系统的结构流程图2是图1中人机交互模块的流程图3是图1中正则表达式训练模块的流程图4是图1中JavaScript解析模块的流程图5是图1中结构化数据提取模块的流程图。
具体实施例方式
下面结合附图对本发明的实施方式进行详细说明。
如图l所示,是整个系统的模块框图。其中人机交互模块与感兴趣版面记录模块相连, 用户通过人机交互模块调用感兴趣版面记录模块;人机交互模块又与正则表达式训练模块相 连;正则表达式训练模块与javascript解析模块相连,当训练网页内有javascript脚本时,正 则表达式训练模块调用javascript解析模块;网页获取模块与代理调度模块相连,当网页采集需要通过代理时,网页获取沖莫块调用代理调度模块;网页获取才莫块又与结构化数据提取模块 相连,网页获取模块得到的数据递交给结构化数据提取模块。结构化数据提取模块与javascript 解析模块相连,当网页内有javascript脚本时,结构化数据模块调用javascript解析模块;结 构化数据提取模块提取完结构化数据后,递交给数据入库模块,存入本地数据库系统;系统 管理模块管理整个系统的运行。
如图2所示,是人机交互模块流程图。从图中我们可以看到,人机交互模块主要和需要 人工参与的功能相关,这里主要是采集网站和版面的选择,以及配置模板的训练。人机交互 模块的主要操作有用户从用户界面登陆到系统,输入需要采集的网站url,选定感兴趣版面, 然后选择内容训练集,人工提取训练集结构化数据,再进行训练,通过测试新的网页对训练 结果进行评估,如果测试评估正确,直接输出配置文件;如果测试评估不正确,加入测试也 到训练集中,进行新一^"的训练。
如图3所示,是正则表达式训练模块流程图。人工准备好的训练集输入训练,首先训练 模块定位出每个训练页面相关结构化数据的位置集(POS),如果位置为空,说明是javascript 输出,调用javascript解析模块进行解析;如果位置不为空,进入下一步。求出每个结构化数 据所在位置前后紧邻相同字符串集(PREV, NEXT},得到正则表达式,然后用新球到的正则 表达式在训练文档中试提耳又结构化数据,如果具有不同于目标结构化数据的元素,即继续转 到训练步骤,扩大前后紧邻相同字符串,直到得出的正则表达式唯一的确定出结构化数据。 进入训练结构测试阶段,选择新的同类网页进行测试,如果测试错误,将新的训练网页加入 训练集,重新训练;如果测试成功,生成最终的正则表达式,从而生成最终的配置模板。
如图4所示,描述了 javascript解析模块流程。该模块用于url提取、正则表达式训练模 块和结构化数据提取才莫块。首先,将含有javascript脚本的网页内容输入,提取出所有javascript 代码和相关的html,然后调用javasript解析器对javascript代码进行解析,最终生成完整的字 符串。
如图5所示,描述了结构化数据提取模块流程。输入测试网页,调用配置模板,提取出 正则表达式,如果遇到有javascript的网页,还要调用javascript解析模块进行解析,然后用 正则表达式提取出结构化数据,进行数据抽取,最后调用数据入库4莫块'将提取出的结构化 数据写入本地数据库系统。
从上述实施过程可以看出,本发明通过采用正则表达式训练+javascript解析+感兴趣版面 记录+人性化交互的技术,有效地实现了针对各种类型网站的数据采集和结构化数据提取,具 有普遍的适用性,为网络信息智能化分析提供了数据采集的可靠方法。
本发明具有实质性特点和显著进步(1)采用正则表达式训练的方法自动提取网站的配置模板,大大提高了网络爬虫的适应性,扩展了网络爬虫的应用范围;(2)通过对javascript 的解析,能够提取动态生成的字段,使得整个爬虫系统基本上对任何类型的网站,普遍具有 通用性;(3)系统考虑了人机结合的方式,大大方便了用户的使用,更加自动化的模板制作 提高了系统的稳定性。
虽然以上描述了本发明的具体实施方式
,但是本技术领域内的熟练人员应当理解,这些 仅是举例说明,可以对这些实施方式做出多种变更或修改,而不背离本发明的原理和实质。 本发明的范围仅有所附权利要求书限定。
权利要求
1.一种网页结构化数据提取方法,其特征在于包括以下步骤选择训练网页内容集并提取目标结构化数据;训练所述训练网页内容集获得与所述目标结构化数据匹配的正则表达式;将所述正则表达式写入配置模板;利用所述配置模板采集网页;从所述采集网页中提取结构化数据。
2. 根据权利要求1所述的网页结构化数据提取方法,其特征在于所述训练所述训练网页内容 集获得与所述目标结构化数据匹配的正则表达式的步骤包括以下步骤第一步,提取出所述训练网页内容集内各页面内的所述目标结构化数据的位置;第二步,利用字符串处理方法,得出所述目标结构化数据的前后紧邻第一个字符,形成界定所述目标结构化数据的正则表达式;第三步,利用所述正则表达式,在所述训练网页集内提取结构化数据;第四步,如果所述结构化数据与所述目标结构化数据一致,转下一步骤;否则,继续加入前后字符,返回至第二步;第五步,增加测试网页,利用所述正则表达式在所述测试网页内提取测试网页结构化数据, 如果所述测试网页结构化数据与所述目标结构化数据一致,则所述正则表达式与所述目标结 构化数据匹配;否则,将所述测试网页添加至所述训练网页内容集,返回至第一步。
3. 根据权利要求1或2所述的网页结构化数据提取方法,其特征在于所述训练所述训练网页 内容集获得与所述目标结构化数据匹配的正则表达式的步骤还可以利用JavaScript解析库 生成URL超链接。
4. 根据权利要求1或2所述的网页结构化数据提取方法,其特征在于所述利用所述配置模板 采集网页的步骤还可以利用JavaScript解析库生成URL超链接。
5. —种网页结构化数据提取系统,其特征在于包括 人机交互模块,用于选择训练网页内容集并提取目标结构化数据;正则表达式训练模块,用于训练所述训练网页内容集获得与所述目标结构化数据匹配的正 则表达式,并将所述正则表达式写入配置模板;网页获取模块,用于利用所述配置模板采集网页; 结构化数据提取模块,用于从所述采集网页中提取结构化数据。
6. 根据权利要求5所述的网页结构化数据提取系统,其特征在于还包括感兴趣版面记录模块,记录已访问网页的页面路径,并供所述人机交互模块调用。
7. 根据权利要求5所述的网页结构化数据提取系统,其特征在于所述网页获取模块采用socket仿httpf咖议,实现多线程的网页采集。
8. 根据权利要求5所述的网页结构化数据提取系统,其特征在于还包括代理调度模块,根据 所述网页获取模块的需要轮换选择所需的代理服务器。
9. 根据权利要求5所述的网页结构化数据提取系统,其特征在于还包括JavaScript解析模块, 利用javascript解析库,对网页内的javascript代码进行解析,为所述正则表达式训练模块 和所述网页获取模块提供网页超链接。
10. 根据权利要求5所述的网页结构化数据提取系统,其特征在于还包括数据入库模块,将 所述结构化数据提^ ^莫块提取的所述结构化数据存储至本地数据库。
全文摘要
一种网页结构化数据提取方法,其特征在于包括以下步骤选择训练网页内容集并提取目标结构化数据;训练所述训练网页内容集获得与所述目标结构化数据匹配的正则表达式;将所述正则表达式写入配置模板;利用所述配置模板采集网页;从所述采集网页中提取结构化数据。依据本发明所提出的网页结构化数据提取方法与系统,可以实现对静态网页和动态网页的结构化数据提取,适用于获取任何类型的网站信息内容并提取结构化数据。
文档编号G06F17/30GK101561802SQ200810036268
公开日2009年10月21日 申请日期2008年4月18日 优先权日2008年4月18日
发明者吴承荣, 张世永, 谢剑锋 申请人:上海复旦光华信息科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1