CN1326078C - 包装器的生成方法 - Google Patents
包装器的生成方法 Download PDFInfo
- Publication number
- CN1326078C CN1326078C CNB2004100745472A CN200410074547A CN1326078C CN 1326078 C CN1326078 C CN 1326078C CN B2004100745472 A CNB2004100745472 A CN B2004100745472A CN 200410074547 A CN200410074547 A CN 200410074547A CN 1326078 C CN1326078 C CN 1326078C
- Authority
- CN
- China
- Prior art keywords
- html
- wrapper
- data
- path
- web
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种包装器的生成方法,将HTML文档格式解析为HTML树结构;使用DTD匹配HTML文档中具体实例,计算匹配关系;得出一条能够覆盖所有HTML文档中对应实例的路径,并搜索HTML树中的子树是否具有相似的子树,如果存在,则用能够覆盖所有相似的子树的路径来代替初始路径;以得到的路径为基础生成相应的信息抽取规则;利用抽取规则在其他HTML文档中抽取需要的数据,若其他HTML文档与前述结构有差别,则重新生成抽取规则;对所有的抽取规则合并,生成能够包含上述所有抽取规则所有情况的综合的抽取规则;将抽取规则导出即生成了包装器。本发明使得包装器能够脱离包装器生成系统,真正为应用程序方便地使用。
Description
技术领域
本发明涉及一种Web页面的包装器的生成方法。
背景技术
Intemet已经有20多年的历史了,近几年才出现了Internet热,这主要应归功于Web。Internet提供了世界范围内网络互连和通信功能,Web则是一个环球信息资源库。Web由无数的页面(Home page主页)组成,页面上的信息包罗万象,而且时时在增加,天天在更新。用户只要打开浏览器就能得到他们感兴趣的资料。Web的易用性使千家万户都能共享Internet上巨大的信息资源。时下,人人都在谈论Web和主页,翻开报纸或新闻杂志,几乎每天都要提到Web和主页。从一个小商店到一个大公司,从研究机关到学校,无不骄傲地向他人显示着自己的主页和Web地址。Web和主页已经成为计算机和通信领域乃至全社会的热点。
由于Web上的数据绝大多数是通过HTML语言来展现的。HTML语言的特点就是任何组织或个人都可以很容易地在Web上发布内容多样、形式各异的信息,结果使得Web上的数据处于杂乱无序的状态,数据集成性非常差,给Web应用的建立造成了极大的困难。
下面对HTML及XML作以简单介绍。HTML来自Standard GeneralizedMarkup Language,即标准通用标记语言,简称SGML。早在Web未发明之前,SGML就早已存在。正如它的名称所言,SGML是一种用标记来描述文档资料的通用语言,它包含了一系列的文档类型定义(简称DTD),DTD中定义了标记的含义,因而SGML的语法是可以扩展的。由于SGML十分庞大,既不容易学,又不容易使用,在计算机上实现也十分困难。鉴于这些因素,Web的发明者——欧洲核子物理研究中心的研究人员根据当时(1989年)计算机技术的能力,提出了HTML语言。HTML只使用SGML中很小一部分标记,例如HTML3.2定义了70种标记。为了便于在计算机上实现,HTML规定的标记是固定的,即HTML语法是不可扩展的,它不需包含DTD。HTML这种固定的语法使它易学易用,在计算机上开发HTML的浏览器也十分容易。HTML是Web显示数据的通用方法,HTML着重描述Web页面的显示格式。
XML同HTML一样,都来自SGML。XML是一个精简的SGML,它将SGML的丰富功能与HTML的易用性结合到Web的应用中。XML保留了SGML的可扩展功能,这使XML从根本上有别于HTML。XML要比HTML强大得多,它不再是固定的标记,而是允许定义数量不限的标记来描述文档中的资料,允许嵌套的信息结构。HTML只是Web显示数据的通用方法,而XML提供了一个直接处理Web数据的通用方法。HTML着重描述Web页面的显示格式,而XML着重描述的是Web页面的内容。模式文件通过一系列可嵌套的合法单元定义了合法的XML文件的结构。这样使得XML文件本身具有了结构化的部分特征,也使得计算机程序可以进行处理,而不是像HTML一样无法直接被计算机程序处理。从实例中也可以看出XML页面信息是带有结构化信息的,有些与数据库结构类似,因而更具访问性,其检索结果更有针对性、更准确。并且,XML精简了一大片SGML难得用一次的功能。正如几十万汉字中常用的只不过八千,SGML常用的部分只占20%,XML抛弃了SGML中不常用的部分,使它一下就精简了80%。总之,XML使用一个简单而有灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。HTML描述了显示全球数据的通用方法,而XML提供了直接处理全球数据的通用方法。
由于HTML自身的特点,就产生了Web包装器。包装器的任务就是负责将HTML格式(具有固定标记)的数据抽取并转化为具体结构化的数据。包装器是Web数据集成系统的重要组成部分之一。
另外,由于Web的动态性和不稳定性,使得Web上的HTML文档经常发生各种改变,比如页面结构上发生了变化等。面对内容庞杂、动态变化的Web信息资源,人们很可能身陷信息的海洋而无所适从。独立的各个企业或组织的应用程序需要转变为适应Web的应用(Weh-Enabled Applications),诸如数字图书馆、电子商务、企业的门户等等,Web应用越来越多。举例来说,某一用户想要去纽约出差,想要了解当地旅店的价格状况,从而找出最适合自己的旅店。那么要做的是登录纽约各个旅馆的网站并查询价格及各方面服务的情况。对于众多的网站,用户要一一浏览并查询,而且要将查询结果记下来以和其他结果相互比较。再例如,用户关心各个影院的电影放映情况,同时又想要了解剧情及其演员导演等介绍情况。这样就需要登录各个网站去找电影放映信息,然后再去IMDB(http://www.imdb.com/)查找剧情、演员和导演的状况。显然,这种方法非常的麻烦。解决办法之一是对上述所需的数据进行集成。
数据集成系统用于支持访问多个Web数据源的应用,它将各个Web数据源的数据集成起来,为用户提供统一的查询接口。开发Web应用系统首先要进行Web数据源的集成。而通常的两种数据集戍的模式:数据仓库模式、中间层模式都需要用到数据抽取这一步工作,也就是说如何从Web上取得数据用于进一步的操作,这正是包装器所需要解决的问题。
Web数据的利用一直以来都是很重要但同时有很困难问题。其中的关键在于Web数据的多样性、复杂性、半结构化以及不稳定性。多样性体现在Web数据几乎覆盖了所有领域各个方面,同时各领域的数据通常具有极大的差别,无论在形式上还是在内容上;复杂性则是体现在两个方面:
1、内容:即使是同一领域内的数据,也存在大量的不同,比如在数据表达方式上的不同,同名异义、异名同义等语义上的不同;
2、形式:由于Web数据通常通过HTML来表现,但是由于构造HTML文档的极大的随意性,使得Web上的HTML文档极其复杂。
半结构化体现在HTML与XML最大的区别在于语义性。由于HTML本身缺乏语义信息,使得应用程序很难利用Web上的数据。而且Web上的数据本身就具有极大的不稳定性,无论是内容、形式还是结构。例如内容上体现为对数据的更新、修改、删除等等;形式上表现为网页结构的重新调整等;结构上表现为可能出现新的网页,或者原有的内容或者结构被删除等等。包装器的目的在于能够将Web上的数据,特别是HTML数据,包装成具有语义信息的XML数据或者关系数据。从数据意义上来说,包装器所起到的作用是屏蔽了Web应用程序和Web页面中包含的数据的直接关系。使得应用程序能够以统一的形式来访问所需要的数据。从包装器角度来说,包装器需要在考虑语义的前提下将HTML文档中的Web数据转换成相关XML或者关系数据。如图1所示。
目前,常用的包装器的生成方法主要分为三类:包装器程序语言方法,机器学习方法,受指导的交互式包装器生成方法。下面简单介绍之。
包装器程序语言方法中,包装器是用手工的方法编写程序来实现的,其抽取过程是基于过程化的程序,但是,抽取结果依赖于文档的结构。通常,所有手工的包装器生成方法对生手来说都很难使用,因为手工编写包装器需要有极强的计算机背景,并且非常了解TML知识和包装器的工作,这大大限制了其推广,不利于传播。机器学习的方法是通过机器学习的方式来生成包装器。该方法需要从大量的Web页面中的正例和反例中学习。机器学习方法的弊端在于包装器表达能力有限,而且需要大量的例子页面,因此生成包装器的过程一般都极其繁琐。受指导的交互式包装器生成方法是采用一种更友好的交互方式生成包装器。其模式定义表达能力较强,并且用户不必了解HTML的细节和包装器的知识即可对其随便使用。近年来发展较快,但由于技术的不成熟,没有统一的较理想的包装器。
发明内容
针对上述现有包装器的问题和不足之处,本发明提出了一种可根据用户目的或者兴趣导向等抽取网页中的数据并可转化成结构化的或者半结构化的有语义的XML数据的包装器的生成方法。
本发明是这样实现的:一种包装器的生成方法,包括以下步骤:
(1)将Web的HTML文档格式通过XML DOM接口解析为HTML树结构;
(2)使用DTD去匹配HTML文档中具体实例,计算出其所有匹配关系;
(3)对于步骤(2)中得到的匹配关系,得出一条能够覆盖所有HTML文档中对应实例的路径,并搜索该路径所表示的HTML树中的子树是否具有相似地位的子树,如果存在,则用能够覆盖所有这些相似的子树的路径来代替该初始的路径;
(4)以步骤(3)中得到的路径为基础生成相应的信息抽取规则;
(5)利用步骤(4)中得到的抽取规则在其他Web的HTML文档中抽取需要的数据,若所述其他HTML文档与前述结构有差别,则重新生成抽取规则;
(6)对所有的抽取规则合并,生成能够包含上述所有抽取规则所有情况的综合的抽取规则;
(7)将步骤(6)中得到的抽取规则导出,以使该抽取规则可单独应用,即生成了所述包装器。
优选地,所述DTD匹配HTML文档具体的匹配关系包括data value、HTMLpath和schema path。
优选地,所述Web的HTML文档为多个。
优选地,所述步骤(3)还包括,若模式树中具有子节点,则重复利用步骤(3)对其进行操作,直到所有的子节点均处理完毕。
优选地,所述步骤(5)重新生成抽取规则即是通过学习对抽取规则进行动态维护。
优选地,所述抽取规则具体为标准的XQuery表达式。
优选地,所述DTD具体为一个或多个XML文件的模板,DTD中定义了XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容。
优选地,所述抽取规则具体为根据HTML树的结构特征及其相应有限的标识提取对应的数据。
优选地,所述步骤(1)中对HTML文档解析时,对HTML文档本身固有的问题(比如格式不正确,HTML标签不匹配)同时进行修正。
本发明提供了一种模式导航的包装器生成系统。该系统能够通过与用户交互半自动地生成包装器,该包装器可以从HTML文档抽取数据并转换为满足用户定义模式的XML文档。系统和用户之间的交互主要通过选择的例子页面来建立模式中的成员和HTML页面中的数据项之间的对应关系,之后系统可以自动根据用户所标记的例子片段自动的推导出抽取规则,并可将该抽取规则单独输出,以用于之后从该类页面上抽取所需要的数据。本发明可依使用者喜好弹性选取网页内容以满足Web信息系统以及个性化的对于Web数据的需求,突破了现有浏览器(比如IE,Mozilla等)的无法直接提供结构化的数据的限制,也为获取和有效利用Web上的数据提供了一种新的手段。
本发明提供了用于生成包装器的一个可行的技术和流程,为获取和有效利用Web网页上的数据提供了一种新的实现方法。本发明具有强大的模式定义表达能力,用户不必了解HTML的细节和包装器的知识即可对其直接使用。本发明降低了网页数据抽取的难度,使用者可以通过图形界面上的简单的拖拉操作即可建立一个健壮的包装器用于从网页中抽取数据。本发明提高了网页数据抽取的正确度,使之能够真正适用于企业等大型应用。
具体而言,本发明有以下优点:
1、通过用户提供的模式,可以更精确的定义用户的需求,以及更好的描述页面所包含的数据的语义信息。而且通过用户给予的模式,本发明可能处理更复杂的内容表达形式;
2、本发明所有的匹配关系以及抽取规则中用到的路径表达式都使用标准XPath表示,这使得系统具有了极好的标准性、可扩展性以及灵活性;
3、本发明采用了抽取规则和最终形成的包装器文件分开的策略,使得生成的包装器能够非常容易的被包含进其他的应用程序中,特别是Web应用系统中。
本发明给出了一套实用、简洁并且有效的用于Web页面数据抽取的技术流程,这套系统方法也很容易和企业的Web信息系统结合起来;比如用于建立价格对比信息系统,从多个电子商务网站中找出某一商品的最低价格的服务等。降低了建立这些查找系统的成本,从而带来经济上更好的效益。
附图说明
下面结合附图对本发明作出详细说明。
图1为现有包装器的应用流程示意图;
图2为本发明的总体流程示意图;
图3为本发明的详细流程示意图;
图4为本发明应用示意图。
具体实施方式
为了更容易理解本发明,现将相关概念进行说明。
包装器即是能够将半结构的或者无结构的数据源中的数据包装成结构化的或者有模式的半结构化的数据。对于Web包装器来说,则是将半结构化无模式的HTML页面中的数据抽取出来得到有模式的半结构化的XML数据。
模式(Schema)指定了可以在文档中存在的元素、元素可以具有的属性、数据类型,在元素内部元素的层次结构以及元素在整个文档中出现的顺序。它能够对标记编制文档,加强标记参数内部的一致性以及使XML语法分析器能够确认文档。在本发明中,用DTD来描述用户所要抽取的网页中的数据以及最终从包装器中得到的结果XML文档的格式。
Schema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法。这就方便了用户和开发者,因为可以使用相同的工具来处理XML Schema和其他XML信息,而不必专门为Schema使用特殊工具。Schema简单易懂,懂得XML语法、规则的人都可以立刻理解它。
DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。XML文件中的元素,即所创建的标记,是根据应用的实际情况来创建的。想要创建一份完整性高、适应性广的DTD是非常困难的,因为各行各业都有他们自己的行业特点,所以DTD通常是以某种应用领域为定义的范围,如:医学、建筑、工商、行政。DTD定义的元素含盖范围越广泛,那么就越复杂。
HTML树:HTML文档可以通过XML解析器解析成具有树形结构的DOM模型,DOM模型具有树形结构特征,其中HTML文档中的每一对标记(tag)对在DOM树中对应于一个节点。DOM树即HTML树。
抽取规则用于从HTML文档中定位相关需要抽取的信息。抽取规则同时也是包装器的基础,它规定了HTML文档中哪些节点需要抽取出来,并且如何抽取,比如有的可能只需要抽取一个节点的值的一部分。
Xpath,一种针对XML的查询语言,用于定位XML文档中的部分内容,操作字符串,操作数字,操作布尔数和匹配XML文档中的一组节点(Nodes)。XPath表达式的输出结果可以是以下四种对象中的一种,即节点集(Node Set)、布尔值、数字和字符串。在本发明中,因为已经将HTML文档解析成为DOM模型,因此用户所要抽取的每个数据项都有一条基于XPath的抽取规则用于表示该数据项在HTML文档中的位置。XPath表达式的简单例子:/authors/author[@period=″classical″]含义是:在根节点为“authors”的XML文档中,查询period属性(attribute)值为classical的author元素(element)。
Xquery,XML文档本质上讲就是一个以顺序和层次为主要结构单元的轮廓。XQuery正是基于XML的这种结构的,它使用这种结构来为同样范围内的XML存储的数据提供查询能力。更为精确地说,XQuery是以XQuery 1.0以及XPath 2.0数据模型的形式定义的[XQ-DM],并将XML文档的分析结构描述为有序的、已做上标记的树,树上的每一个节点都有一个不同的身份并可能具有简单的或者复杂的类型。XQuery能够被用于对没有任何模式(schema)的XML数据进行查询,也可以对由World Wide Web Consortium(W3C)XML模式或者由文件类型定义(DTD)来管理的数据进行查询。需要注意的是XQuery所使用的数据模型与古典的关系模型截然不同,在XQuery没有层的概念,顺序在这里也不是很重要,并且不支持身份(Identity)。XQuery的每一个查询都是一个待求值的表达式,并且表达式之间可以进行非常灵活的组合来创建一个新的表达式。在本发明中,通过一个XQuery表达式来抽取一个页面中所有需要抽取的数据(对应于该页面数据的模式),其中的每一个数据项分别对应于一个子XQuery查询表达式。
如图2所示,本发明属于模式导航的包装器生成系统。本发明首先基于用户预定义的模式,并将Web页面的HTML文档格式通过XML DOM接口解析为HTML树结构,并比较模式与HTML树中的匹配关系,并生成抽取规则,并采用与用户交互的方式最终通过包装器生成器生成包装器,该生成的包装器可从该页面中抽取数据并生成满足模式定义的XML文档。本发明的包装器生成过程有学习的过程。
为了抽取一个网页中的数据,用户必须首先提供一个模式用于提供所需要抽取的语义信息,同时从包装器输出的XML文档也将按照这个模式采构造。
如图3所示,首先选择网站,并选择相应的例子页面,用户提供相应的数据模式。其中,在系统的内部处理中,HTML文档通过XML DOM接口解析为HTML树。在解析的同时,HTML文档本身固有的一些问题也被修正。前面已经提到的,HTML具有很大的随意性,同时也不能够严格遵守XML的标准,比如HTML文档中一个很普遍的现象就是标记(tag)左右不匹配等。同时模式(在本发明中使用DTD)也被解释为模式树。XML文件中的元素,即所创建的标记,是根据应用的实际情况来创建的。在元素设置中,如果元素包含多个子元素,如:<!ELEMENT书籍(名称,作者,价格)>这种含多个子元素的声明,那么“名称”、“作者”、“价格”这些标记在XML文件中必须以上面排列的顺序出现,每个标记必须而且只能够出现一次。如果在设定元素时,按照<!ELEMENT书籍ANY>,这样在元素下就可以包含任意被设定过的元素,出现的次数和顺序也不受限制,并且在该元素下,除了可以包含子元素以外,还能够包含一般的文字。有时候,在XML文件中,一个标记可能多次出现(或者不出现),那么除了在它们的父元素中用ANY关键字之外,还可以在元素的旁边加上特定的符号来控制标记出现的次数。可见,XML具有相当清晰的结构。
用户在GUI上确定两者的匹配关系之后,系统会自动计算其匹配关系。一个匹配关系在本发明中表现为一个三元组,Mapping(data value,HTML path,schema path)。其中data value表示用户选取的这个模式成员的实例的值(在HTML树中表现为一个或者多个text node的值);HTML path表示这个(或者多个)文本节点在HTML树中的路径,用于在HTML树中定位该节点;schemapath表示该模式成员在模式树中从根到叶的路径,用于在模式树中定位该成员。下面显示了一个匹配关系的例子。
M4(D:“David Flanagan”,
HP:.../td[3]/table[0]/tr[5]/td[0]/a[0]/b[0][contains(/parent/parent/parent/preceding-sibling/nobr/b::text()[0],“Author:”)]/text();
SP:BookList/Book/Author);
可以看出HP的表达表示完全符合XPath标准,其中谓词[contains(...)]则是标示了注释信息。
需要注意,用户通过GUI只能够给出有限个例子。这一步的目的是能从通过用户给出的例子得到的匹配关系中推导能够覆盖整个页面中所有需要抽取的数据的抽取规则。大多数的包含大量数据的HTML页面中(比如从搜索引擎得到的页面),通常在一个页面中包括多个完整的数据实例块。这里指的数据实例块指的是恰好能够符合一个模式所定义的数据实例的组合。观察以及试验结果证明,在HTML树结构中,这样一个数据实例块通常表现为一棵子树。同时,一个页面中多个这样子树通常表现为具有相似地位的多棵子树。
本发明的关键步骤为:从用户给出的数据实例块出发,通常在一个数据实例块中就可以得到多个数据项的匹配关系。事实上,如果只有一个匹配关系,则问题已经被大大简化了。对于其中的每个匹配关系,本发明首先比较他们的schema path,例如得到的匹配关系中的schema path的路径如下:BookList/Book/Title;BookList/Book/Author;BookList/Book/ListPrice等,则第一步为从三者的HTML path中找出或者概括一条路径能够覆盖这三者中的BookList在HTML文档中对应的实例,同时继续搜索这个路径所表示的HTML树中的子树是否具有相似地位的子树,如果存在,则用能够覆盖所有这些相似的子树的路径来代替初始的路径;而BookList在模式树中具有子节点,但是对于BookList的每一个子节点来说,情况其实都是一样的,本发明采取同样的算法来得到能够得到能够覆盖这些子树的路径,因此只需要递归的执行该算法即可,直到所有的schemapath都已经被处理完毕。
这样,本发明即得到的抽取规则被表达为标准XQuery表达式。为说明问题,下面给出一段抽取规则的形式表达的例子。该例子是XQuery形式的必然,不是人为规定。
{LET$blist:=document($d)
RETURN
<Booklist>
{FOR $b IN
$blist/body/table[0]/tr[2]/td[0]/table[1]/tr[0]/td[2]table[0]/tr[0]/td[0]/table[0]/tr
RETURN
<Book>
……
</book>
}
</booklist>
}
其中FOR和LET语句分别对应于模式(这里考虑DTD)中“+/*”与其他的所有情况,前者表示一个模式成员可能对应于多个数据实例,后者表示只有一个数据实例。
本发明从一个HTML文档中得到满足用户需求的抽取规则。当然,这个抽取规则并不是只能用于这个单一的页面。在实际应用中,同一个网站中存在大量具有类似结构的实例,但是含有不同内容的页面,比如,从同一个搜索引擎中得到的页面通常还有类似的结构。因此,这样产生的抽取规则同样也适用于这种具有类似结构的网页。通过抽取规则的抽取HTML页面中的数据的过程是用这个XQuery表达式去查询HTML文档,返回XML的结果即用户要抽取的数据。
当然,同一个抽取规则面对的页面虽然具有相似的结构,但是可能存在细微的不同,比如某一数据上是否含有链接等。本发明支持用户从多个页面生成多个抽取规则,最后由系统来自动生成能够包含这些抽取规则的所有情况的综合的抽取规则。该抽取规则能够适用于更多的情况,也就具有更大的通用性。
至此,本发明得到的只是系统内部用XQuery表示的抽取规则,但是这个抽取规则还不能独立于系统外运行。因此,最后的工作是导出抽取规则,使得其能够随时单独地在系统之外运行这个抽取规则。这也是真正应用开发中的需要。
本发明开发了能够根据这个XQuery表达式的抽取规则生成相应的java程序的技术。当执行整个java程序的时候,我们可以从中还原出XQuery表达式的抽取规则,然后从HTML文档中抽取出所需要的数据。本发明使得包装器能够脱离包装器生成系统,能够真正为应用程序方便地使用。
如图4所示,本发明主界面以靠左的竖线为界可分为两个区域,左边为一个内嵌的浏览器,右边为相关的模式信息以及相关的显示和操作。要从HTML页面中生成一个包装器,首先,用户需要在A处输入该HTML页面所在的URL,回车之后B处就显示了所要抽取的HTML页面。接着根据要抽取的页面,用户需要选择或者定制模式信息,在C处显示了用户所定制的模式(显示为DTD树)。然后用户在选定模式中的一个数据项之后,在左边的页面中标示出相应的HTML文档中的一个实例,系统会自动取出该实例在HTML树中的路径,显示在D处。同时,如果该实例有相关的描述信息,这个信息也将被记录下来,同样显示在B处。所谓描述信息,例如“List Price:$11.11”,这里“List Price”解释了这个价格信息,同时,这个信息能够准确的表明之后的信息是关于这个价格的。当已经做好模式中的一个数据项和HTML页面中的实例之后,用户需要点击E中的选项生成一个匹配规则(其中还需要处理匹配关系中的字符串处理方法)。这样,采取类似的操作,用户可以为模式中的每一个数据项都建立起一条匹配规则。最后,通过E中的选项,用户可以生成一个抽取规则,用于从HTML页面中抽取所有模式中已经定义的数据,并且可以进行测试,如果发现结果比较满意,则选择输出包装器(事实上为一段独立的java代码)到本地文件系统;否则可以回到主界面选择更多的实例以达到更好的效果。
Claims (8)
1、一种包装器的生成方法,包括以下步骤:
(1)将Web的HTML文档格式通过XML DOM接口解析为HTML树结构;
(2)使用DTD去匹配HTML文档中具体实例,计算出其所有匹配关系;
(3)对于步骤(2)中得到的匹配关系,得出一条能够覆盖所有HTML文档中对应实例的路径,并搜索该路径所表示的HTML树中的子树是否具有相似地位的子树,如果存在,则用能够覆盖所有这些相似的子树的路径来代替该初始的路径;
(4)以步骤(3)中得到的路径为基础生成相应的信息抽取规则;
(5)利用步骤(4)中得到的抽取规则在其他Web的HTML文档中抽取需要的数据,若所述其他HTML文档与前述结构有差别,则重新生成抽取规则;
(6)对所有的抽取规则合并,生成能够包含上述所有抽取规则所有情况的综合的抽取规则;
(7)将步骤(6)中得到的抽取规则导出,以使该抽取规则可单独应用,即生成了所述包装器;
其中,所述DTD匹配HTML文档具体的匹配关系包括data value、HTML path和schema path。
2、如权利要求1所述的包装器的生成方法,其特征在于,所述Web的HTML文档为多个。
3、如权利要求1所述的包装器的生成方法,其特征在于,所述步骤(3)还包括,若模式树中具有子节点,则重复利用步骤(3)对其进行操作,直到所有的子节点均处理完毕。
4、如权利要求1所述的包装器的生成方法,其特征在于,所述步骤(5)重新生成抽取规则即是通过学习对抽取规则进行动态维护。
5、如权利要求1所述的包装器的生成方法,其特征在于,所述抽取规则具体为标准的XQuery表达式。
6、如权利要求1至5中任一权利要求所述的包装器的生成方法,其特征在于,所述DTD具体为一个或多个XML文件的模板,DTD中定义了XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容。
7、如权利要求1所述的包装器的生成方法,其特征在于,所述抽取规则具体为根据HTML树的结构特征及其相应有限的标识提取对应的数据。
8、如权利要求1所述的包装器的生成方法,其特征在于,所述步骤(1)中对HTML文档解析时,对HTML文档本身固有的问题同时进行修正。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100745472A CN1326078C (zh) | 2004-09-08 | 2004-09-08 | 包装器的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100745472A CN1326078C (zh) | 2004-09-08 | 2004-09-08 | 包装器的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1588371A CN1588371A (zh) | 2005-03-02 |
CN1326078C true CN1326078C (zh) | 2007-07-11 |
Family
ID=34604850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100745472A Expired - Fee Related CN1326078C (zh) | 2004-09-08 | 2004-09-08 | 包装器的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1326078C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661468B (zh) * | 2008-08-29 | 2011-08-31 | 中国科学院计算技术研究所 | 一种从论坛帖子列表页面中抽取帖子元数据的方法 |
CN101807206A (zh) * | 2010-03-10 | 2010-08-18 | 上海克而瑞信息技术有限公司 | 一种网络信息垂直搜索与挖掘处理方法 |
CN102360368B (zh) * | 2011-10-09 | 2014-07-02 | 山东大学 | 基于抽取模板可视化定制的Web数据抽取方法 |
CN103853823B (zh) * | 2014-02-26 | 2017-01-18 | 中国科学院计算技术研究所 | 一种面向在线百科的实体属性抽取方法及系统 |
CN107463617A (zh) * | 2017-07-04 | 2017-12-12 | 北京工业大学 | 基于路径摘要的链接信息提取方法 |
CN107943929B (zh) * | 2017-11-22 | 2021-09-28 | 福州大学 | 基于dom树抽象的包装器自动生成方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606625B1 (en) * | 1999-06-03 | 2003-08-12 | University Of Southern California | Wrapper induction by hierarchical data analysis |
-
2004
- 2004-09-08 CN CNB2004100745472A patent/CN1326078C/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606625B1 (en) * | 1999-06-03 | 2003-08-12 | University Of Southern California | Wrapper induction by hierarchical data analysis |
Non-Patent Citations (3)
Title |
---|
Web信息集成技术研究 孟小峰,计算机应用与软件 2003 * |
Web信息集成技术研究 孟小峰,计算机应用与软件 2003;XWIS中基于预定义模式的包装器 孟小峰,王海燕,谷明哲,王静,计算机应用,第21卷第9期 2001 * |
XWIS中基于预定义模式的包装器 孟小峰,王海燕,谷明哲,王静,计算机应用,第21卷第9期 2001 * |
Also Published As
Publication number | Publication date |
---|---|
CN1588371A (zh) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nilsson et al. | The LOM RDF binding: principles and implementation | |
Abiteboul et al. | Web data management | |
Erl | Service-oriented architecture | |
JP3842573B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム | |
Frischmuth et al. | Ontowiki–an authoring, publication and visualization interface for the data web | |
US7548912B2 (en) | Simplified search interface for querying a relational database | |
Dodds et al. | Linked data patterns | |
US8700673B2 (en) | Mechanisms for metadata search in enterprise applications | |
Sahuguet et al. | Wysiwyg web wrapper factory (w4f) | |
Ceri et al. | XML: Current developments and future challenges for the database community | |
Ghobadi et al. | An ontology based semantic extraction approach for B2C eCommerce | |
Liu et al. | An XML-enabled data extraction toolkit for web sources | |
CN1326078C (zh) | 包装器的生成方法 | |
McCartney et al. | Using XML-encoded metadata as a basis for advanced information systems for ecological research | |
JP3842576B2 (ja) | 構造化文書編集方法及び構造化文書編集システム | |
US8719693B2 (en) | Method for storing localized XML document values | |
JP3842572B2 (ja) | 構造化文書管理方法および構造化文書管理装置およびプログラム | |
Damljanovic et al. | Enhanced semantic access to software artefacts | |
Lee | Metadata representation and management for context mediation | |
Hong et al. | Extracting web query interfaces based on form structures and semantic similarity | |
JP3842574B2 (ja) | 情報抽出方法および構造化文書管理装置およびプログラム | |
Allalouf et al. | LODLI: linked open data back-end system for libraries interoperability | |
JP3842575B2 (ja) | 構造化文書検索方法、構造化文書管理装置及びプログラム | |
Silva et al. | LMDQL: link-based and multidimensional query language | |
Pourkhani et al. | A Survey on Transformation Methods of XML Documents to Ontologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |