专利名称::自适应地定位动态网页元素的系统和方法
技术领域:
:本发明一般地涉及数据查询和采集,并且具体而言涉及一种自适应地定位动态网页元素的系统和方法。
背景技术:
:随着万维网(WorldWideWeb)的蓬勃发展,Web的内容变得越来越丰富。在进入Web2.0时代之后,估计Web—共具有大约150-300亿个网页。因此,对于用户来说,手动地逐个访问感兴趣的网页以及在其中定位感兴趣的内容正在变成一项繁重的劳动。由此,许多网站提供REST、SOAP、WSDL、FEED以及其它用于机器访问的Web服务。不过,相对于网页及其内容的高速增长,这些Web服务的改进要慢得多。网页上的大多数信息仍然仅可以由浏览网页的人所访问。尽管可以对网页进行很好地设计用来进行访问,但其仅出于对终端用户的考虑而关注于演示结构或类型设置,而很难同时照顾到这些用于机器访问的Web服务的需要。并且,在Web上分布的网页通常是高度动态的、易失的、分布式的、以及异类的。此外,与传统的纯文本文档相比而言,网页的内容通常要更加多种多样。由此,为了处理Web中的海量的信息性和功能性资源,存在许多工具,其允许用户从现有的Web中剪切用户界面,提取数据、功能和过程,并将数据转换成可重用的订阅文件(FEED)和服务。对于网页中的数据等的提取常常是通过XPath来实现的。XPath是指XML路径语言(XMLPathLanguage),它是一种用来在XML文档中查找信息并确定XML文档中某部分的位置的语言。XPath可以被开发者用来当作小型查询语言,用于在XML文档中通过元素和属性进行导航。在XPath中,有七种类型的节点元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML文档是被作为节点树来对待的,树的根被称为文档节点或者根节点。XPath使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式与可以在常规的电脑文件系统中看到的表达式非常相似。所述路径可以是绝对路径,也可以是相对路径。路径表达式可以具有谓词(predicate)、通配符和运算符。XPath还含有超过100个内建的标准函数,这些函数用于字符串值、数值、日期和时间比较、节点处理、序列处理、逻辑值等等。一些示例性的XPath路径表达式示出如下/html/body/div/div/form/table/tr[l/td/input@name=keyword;/html/body/div/.../p/div/a[@content=nextj;以及"/input[(^id二123451。在商业、学术和工业领域中存在大量的新的技术和应用,其被开发和实现用于基于XPath从Web提取数据、功能、过程。例如,首先将网页解析成HTML(超文本标记语言)DOM(文档对象模型)树。这里所述的DOM是指W3C(万维网联盟,WorldWideWebConsortium)定义的标准的文档对象冲莫型,它以树形结构表示HTML和XML(可扩展标记语言)文档,定义了遍历这个树和检查、修改树的节点的方法和属性。在DOM树的结构下,HTML文档的各个节点被视为各种类型的节点对象。每个节点对象都有自己的属性和方法,利用这些属性和方法可以遍历整个文档树。在生成DOM文档树之后,可以通过属性、标签名称来查找所需的元素。然后,就可以通过XPath来定位所述元素,即所需的数据。一旦从网页中提取到用户所需的数据,就可以将其基于XPath的路径表达式记录下来,并且在未来需要时通过所记录的XPath路径表达式再次定位和访问所述数据。然而,由于网页的前述的高度动态特性,大多数网页是动态生成的,所以网页中的内容常常是变化的。并且,许多网站会定期对其网页进行更新,诸如添加、^修改或删除现有网页的内容、格式或布局。而这些更新或改变通常将会影响到网页中的数据的XPath的路径表达式,从而当用户试图通过之前记录的XPath路径表达式来访问所需数据时,就可能无法找到6数据或者定位到错误的数据。因此,上述的基于XPath来访问和提取数据的方法不是自适应的。因此,为了在网页动态变化时从中提取所需数据和功能,一大挑战是精确地定位非结构化的或者半结构化的数据。由此,存在对于下述技术的需要,所述技术用于在动态的网页中不管各种网页内容的变化而基于XPath来定位所需的Web内容。
发明内容为了克服现有技术中所存在的缺陷,并实现基于XPath来定位动态网页元素的目的,从而通过结合HTML知识数据库而使得对网页元素的定位成为自适应的,而提出了本发明。在本发明的第一方面中,提出了一种自适应地定位动态网页元素的系统,包括HTML知识数据库,用于描述HTML标签的关联度以及属性的重要性;XPath泛化器,用于基于所述HTML知识数据库对网页元素的XPath路径表达式执行泛化过程;以及增强XPath解析引擎,用于通过泛化后的XPath路径表达式在目标网页的HTMLDOM树中搜索所述网页元素。在本发明的第二方面中,提出了一种自适应地定位动态网页元素的方法,包括基于描述HTML标签的关联度以及属性的重要性的HTML知识数据库,对网页元素的XPath路径表达式执行泛化过程;以及通过泛化后的XPath路径表达式在目标网页的HTMLDOM树中搜索所述网页元素。在本发明的第三方面中,提出了一种计算机程序产品,其可被加载到计算机上并包括程序代码工具,当所述计算机程序产品在计算机上运行时,步骤。在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过参考以下结合附图的说明性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目的和优点,在附图中图1示出了根据本发明一个实施例的自适应地定位动态网页元素的系统;图2示出了根据本发明一个实施例的自适应地定位动态网页元素的方法的示例性流程图3示出了针对新布局的自适应特性的本发明的一个实施例;图4示出了通过使用属性知识来过滤干扰的本发明的一个实施例;以及图5示出了通过使用结构知识来过滤干扰的本发明的一个实施例。需要注意,在全体附图中,相同或相似的标号指代的是相同或相似的单元或组件。具体实施例方式在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实现方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多实现方式所特定的决定,以便实现开发人员的具体目标,例如符合与系统及业务相关的那些限制条件,其中,这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于这个公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。此外,还需要说明的一点是,为了避免因不必要的细节而混淆了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。本发明基于XPath并结合了HTML知识数据库来定位网页中的内容,从而使其适于在动态变化的网页中自适应地查找和定位所需的网页元素。根据本发明的一个实施例,首先使用XPath在目标网页的HTMLDOM树中定位所需网页元素,在没有找到所需网页元素的情况下,按照从特殊化到一般化的顺序,根据HTML知识数据库逐步地泛化XPath,从而扩大XPath的查找范围,以在更大范围内定位所需元素,最终可以找到所需的元素或者可以输出定位失败的消息。在本发明的一个实施例中,所述XPath泛化过程可以根据HTML知识数据库逐步地从XPath路径表达式中移除一些关联度较弱的标签和/或不重要的属性。这样的移除过程可以通过多种方式来实现,所述方式包括但是不限于i)用权重值来代表标签的关联度以及属性的重要性,根据所述权重值,从大到小地或者从小到大地从XPath中逐步移除标签和/或属性;ii)通过使用逻辑值(0/1)或者开关值(Yes/No)从XPath中移除标签和/或属性,例如,保留逻辑值为1或者开关值为Yes的标签和/或属性,而移除逻辑值为0或者开关值为No的标签和/或属性;以及iii)在HTML知识数据库中仅保存需要在XPath中保留的标签和/或属性,从而在对XPath进行泛化的过程中,可以从XPath中移除HTML知识数据库中不存在的标签和/或属性。注意,除了上述列举的方式之外,本领域技术人员可以容易地想到其它方式用来泛化XPath路径表达式,这些方式都净皮i人为是落入本发明的精神和范围中。为了更好地理解本发明及其特征和优点,下面是对本发明及其实施例的详细介绍。首先参见图1,图1示出了根据本发明一个实施例的自适应地定位动态网页元素的系统。如图1所示,所述系统包括XPath泛化器110、增强XPath解析引擎120和HTML知识数据库130。其中,对于XPath泛化器110的输入是针对用户所需的数据的完整的XPath,例如用户需要查找的是一个表格,其初始的XPath路径表达式A/html/body/.../form。所述XPath路径表达式用于表示所需的数据(目标网页元素)的位置。对于增强XPath解析引擎120的输入是通过目标网页所生成的HTMLDOM树。通过网页生成相应的HTMLDOM树是本领域冲支术人员所/^知的,存在多种技术来完成该过程,在此不做进一步描述,以免混淆本发明。从增强XPath解析引擎120的输出是结果节点集合或者定位错误的消息。HTML知识数据库130描述了HTML标签的关联度以及属性的重要性。对于HTML知识数据库130的i殳计和生成可以通过多种方式来进行,例如通过静态分析、对网页设计经验的研究、或者手动工作。所述HTML知识数据库130例如包括HTML标签关联度表131和HTML属性重要性表132。二者的示例性简要表示可以分别参见以下的表1和表2。应该注意,由于HTML标签关联度表和HTML属性重要性表所代表的是一种数据结构,所以它们既可以采用数据库的表,也可以采用配置文件、XML文件等本领域技术人员公知的任何数据结构存储方式来保存。formtabletbodyinputn0.20.1tr0.210.4table0.10.30表1(HTML标签关联度表)首先参见表1(HTML标签关联度表131),表1表示HTML标签之间的关联度。表1中的第一列和第一行分别列举了各个HTML标签,其中,左边第一列所列举的标签位于XPath路径表达式的内部,即,更加靠近XPath的结尾,这意味着该标签基本上是对应于用户要在动态网页中寻找的元素的标签。表l中的数字表示标签之间的关联度,其可以用权重值来表示。例如,参见表1第二4亍的input标签,其与form、table、tbody标签之间对应的关联度权重分别为1、0.2、0.1,其中input标签与form标签的关联度的对应权重远大于input与其它标签的关联度的权重。由此可见,相对于其它标签而言,form标签与input标签的关联度更加紧密。类似地,由于input标签与tbody标签之间的关联度的对应权重为0.1,则表10示input标签与tbody标签的关联度相对来说并不紧密。这样,在根据本发明实施例的方案对XPath的路径表达式实施逐步进行泛化的过程中,tbody标签将会最先被从XPath路径表达式中移除,然后进行网页元素定位与查找。如果仍未找到,则继续移除table标签(以及权重值低于form标签的关联度权重的其它未示出的标签),而相对来说form标签将在XPath中保留最长时间。当然,在一直无法在网页中定位到用户所需网页元素的情况下,相对于权重值高于form标签的关联度权重的其它未示出的标签来说,form标签会较早被从XPath中移除。注意,为了说明书的简要起见,表l中并未示出全部的HTML标签以及它们之间的关联度,本领域技术人员可以预期,对其它HTML标签的列举以及对它们的关联度的定义也将落入本发明的精神和范围中。<table>tableseeoriginaldocumentpage11</column></row><table>表2(HTML属性重要性表)参见表2(HTML属性重要性表132),表2表示HTML属性相对于HTML标签的重要性。表2中的第一列列举了各个HTML标签,第一行列举了HTML属性的名称。表2中的数字表示各个标签与其相应的属性之间的重要性,其可以用权重值来表示。例如,参见表2第二行的input标签,其与type、name、value、#text属性之间的重要性权重分别为1、0.6、0、0.7,其中input标签与type属性的重要性的对应库又重远大于input与其它属性的重要性的权重。由此可见,相对于其它属性而言,input标签中的type属性更加重要。类似地,由于input标签与value属性之间的重要性权重为0,则表示在input标签中的value属性并不重要。这样,在根据本发明实施例的方案对XPath的路径表达式实施逐步过滤时,value属性将会最先被从XPath路径表达式中移除,然后进行网页元素定位与查找。如果仍未找到,则继续逐步地移除name、弁text属性(以及权重值低于type属性的重要性权重的其它未示出的属性),而相对来说type属性将在XPath中保留最长时间。当然,在一直无法在网页中定位到用户所需网页元素的情况下,相对于权重值高于type属性的重要性权重的其它未示出的属性来说,type属性会较早被从XPath中移除。注意,为了说明书的简要起见,表2中并未示出全部的HTML标签以及各个标签与其属性之间的重要性,本领域技术人员可以预期,对其它HTML标签的列举以及对它们与其属性的重要性的定义也将落入本发明的精神和范围中。需要说明的是,上述的HTML知识数据库130中的HTML标签关联度表131(表1)和HTML属性重要性表132(表2)中所列举的标签关联度和属性重要性都不是静态不变的,它们可以根据网页设计经验或基于对XPath的查找结果随时进行动态更新或修改,以便在对XPath进行逐步泛化时得到更加精确的结果。并且,在不同的应用领域中,该HTML知识数据库130可以不同。也就是说,本说明书中仅列举了HTML标签关联度和HTML属性重要性表的一个实施例。根据不同领域的相关知识,对HTML标签关联度和属性重要性可能具有不同要求,从而导致表1和表2中列举的各个权重值可以是不同的,但它们均落入本发明的精神和范围中。为了在动态网页中准确地定位网页元素,在本发明中使用了一种逐步泛化的机制。根据所述机制,如果通过XPath路径表达式成功地定位了一个或多个网页元素,则返回所述网页元素。而当根据当前的XPath路径表达式无法定位网页元素时,则需要将XPath中的网页元素位置进行泛化,使其包含更宽的查找范围,从而找到所需网页元素的可能性也随之增加。在此定义了一个阈值,该阈值可以随着XPath的逐步泛化而,皮调整。在本发明的一个实施例中,当需要进行XPath泛化时,具有低于该阈值的权重值的所有标签和属性将被从XPath路径表达式中移除,并重新开始一次新的查找。如果再次查找依然没有找到网页元素,则增加该阈值,并根据已增加的阈值进一步从XPath中移除更多的标签和属性(它们的权重值低于所述已增加的阈值),从而进一步扩大查找范围。上述过程是一个循环过程,直到找到所需网页元素或者该阔值大于或等于一个预先设置的最大阈值时,上述过程停止。当找到网页元素时,将网页元素返回并呈现给用户;而当该阈值大于或等于预先设置的最大阈值时,停止查找过程,并返回定位错误的消息,该消息表示没有从目标网页中找到所需的网页元素。需要注意,尽管出于便于描述的目的,在本说明书的上下文中以增加阈值为例来代表对于所述阈值的调整,但是本发明并不限于此。在本发明的可替换实施例中,也可以逐步地减少该阈值。相应地,当需要进行XPath泛化时,具有高于该阈值的权重值的所有标签和属性将被从XPath路径表达式中移除,并重新开始一次新的查找。上述过程是一个循环过程,直到找到所需网页元素或者该阈值小于或等于一个预先设置的最大阈值时,上述过程停止,并相应地返回所找到的网页元素或者定位错误的消息。重新回到图1,XPath泛化器110首先接收针对用户所需的网页元素的完整的XPath路径表达式,基于HTML知识数据库130针对XPath路径表达式逐步地执行泛化过程,之后将泛化后的XPath路径表达式传递到增强XPath解析引擎120。此外,XPath泛化器110还定义了一个阈值并对其赋值。所述XPath泛化器110通过所述阈值并结合所述HTML知识数据库130来泛化所述XPath路径表达式。所述泛化的过程如下基于所需的网页元素,从所述XPath路径表达式中移除下述标签,在所述HTML知识数据库130的HTML标签关联度表131中,所述标签与所需元素对应的关联度(权重值)低于所述阈值;以及基于所需的网页元素,从所述XPath路径表达式中移除下述属性,在所述HTML知识数据库130中的HTML属性重要性表132中,所述属性与所需元素对应的重要性(权重值)低于所述阈值。如果所述增强XPath解析引擎120—直无法通过经过泛化的XPath找到所需元素,则^f吏所述阈值一直递增。当所述阈值大于或等于一个预先设置的最大阈值时,所述XPath泛化器110通知所述增强XPath解析引擎120停止执行网页元素定位过程,并向用户返回定位错误的消息。增强XPath解析引擎120接收目标网页的HTMLDOM树,然后通过泛化后的XPath在HTMLDOM树中搜索所需的数据或网页元素,例如可以通过对HTMLDOM树进行遍历以找到所需的数据或网页元素。如果找到一个或多个相应元素,则将结果输出作为结果节点集合,并作为用户所需的网页元素呈现给用户。否则如果没有找到相应元素,则通知XPath泛化器110对XPath路径表达式进行进一步泛化,从而扩大了XPath的查找范围。然后由增强XPath解析引擎120根据经过泛化的XPath路径表达式在HTMLDOM树中进行进一步搜索。在由增强XPath解析引擎120找到并返回的网页元素的数量多于一个的情形中,说明其中可能出现干扰,即,其中可能存在并非用户需要的数据或元素。例如,这可能由以下原因造成i)数据查找粒度不够精细ii)用户需要的数据与干扰数据处于XPath的相同层次,也即二者当前XPath的路径表达式完全一致;iii)用户需要的数据在动态网页中被复制了至少一次。在任一情形中,用户都会得到所有网页元素的集合,并判断应该如何改进查询结果。在第一种情形中,用户可以使阔值递增的幅度降低并重复所述系统的操作过程。例如,假设之前阈值每次递增0.3,可以改为每次递增0.1,这样使得每次使阈值递增之后在XPath中被过滤掉的标签和属性较少,也就是保留下来用于查找的标签和属性较多,从而有可能将干扰排除。在后两种情形中,用户可以人工来判断哪些结果是用户所需的结果,也可以通过其它方式来通过机器自动进行判断,例如比较初始数据与查找结果的特征区别等。这些比较方式可以是本发明技术人员所能预期的任意方式。并且,用户可能会意识到HTML知识数据库130中保存的一个或多个标签关联度或者属性重要性不够准确,例如过高或过低,从而导致生成了具有干扰的结果集合。据此,用户可以对HTML知识数据库130中保存的数据进行修改,以适应于生成更加准确的结果集合。如本领域技术人员所能预期的,在XPath泛化器110结合HTML知识数据库130对XPath路径表达式进行泛化的操作中,取决于数据查找的粒度、系统的整体计算能力、或者其它具体要求,所述泛化可以仅参照HTML14标签关联度表131从XPath中移除权重值较低的标签,或者仅参照HTML属性重要性表132从XPath中移除权重值较低的属性,或者先参照HTML标签关联度表131再参照HTML属性重要性表132来移除权重值较低的标签和属性,或者先参照HTML属性重要性表132再参照HTML标签关联度表131来移除权重值较低的标签和属性,或者同时参照上述两个表移除权重值较低的标签和属性。以上任一种情形均落入本发明的精神和范围中。以上详细介绍了根据本发明一个实施例的自适应地定位动态网页元素的系统。在同一发明构思下,下面将描述根据本发明一个实施例的自适应地定位动态网页元素的方法。现在参考图2,示出了根据本发明一个实施例的自适应地定位动态网页元素的方法的示例性流程图。首先,所述流程开始于步骤205,并接着进行到步骤210。在步骤210,将定义一个阈值,并将该阈值设为O。随后所述流程进入一个循环过程,该循环过程始于步骤215。在步骤215,通过所接收的XPath路径表达式在目标网页的HTMLDOM树中搜索所需的网页元素,例如遍历HTMLDOM树并定位其中的元素。通过XPath来定位HTMLDOM树中的元素是本领域技术人员所公知的,在此省略对其的进一步说明。在步骤220确定是否可以找到一个或多个元素。如果是,则所述流程进行到步骤225,返回所找到的元素作为结果节点集合,并且所述流程跳出循环过程并结束。如果在步骤220确定无法找到任何元素,则所述流程进行到步骤230,确定当前阔值是否小于预先设置的最大阈值。如果否,则当前阔值大于或等于预先设置的最大阈值,所述流程进行到步骤235,返回定位错误的消息,并且所述方法跳出循环过程并结束。如果在步骤230确定当前阈值小于预先设置的最大阈值,则所述流程进行到步骤240,调整当前阈值。在本发明的一个实施例中,对阈值的调整为递增所述当前阈值。取决于本方法所要实现的对所需元素的查找粒度以及对系统性能的需求,使所述阈值递增的幅度也可以不同。例如,参照上述表l、表2中所示的^又重值,在较细粒度的查询中,阈值递增的幅度可以是O.l,这样可以确保在最小范围内定位所需网页元素,而不会一次性移除过多的不同标签或属性从而导致产生多个类似的定位结果,但这样必然会导致所述方法中的循环过程的执行次数较多,从而增加了计算开销,并进而增加了整个系统的运行开销。而在较粗粒度的查询中,阈值递增的幅度例如可以是0.3甚至0.5,这样可以确保较快地定位到所需网页元素,减少了循环过程的执行次数,节约系统的开销,但可能在同一次循环中定位并输出多个类似的结果网页元素,进而需要进一步通过人工或机器的工作来比较这些结果以找到实际所需的网页元素。在所述当前阈值被调整(递增)之后,所述流程进行到步骤245,其中基于HTML知识数据库,针对用户所需的网页元素的XPath路径表达式逐步地执行泛化过程。在本发明的一个实施例中,参照HTML知识数据库中所保存的HTML标签的关联度以及属性重要性,将低于当前阈值的标签和/或属性从XPath路径表达式中移除,这样的泛化过程使得XPath路径表达式的适应范围更宽,从而提高了找到所需网页元素的可能性。如上所述,上述结合HTML知识的泛化过程可以仅参照HTML标签的关联度、或者仅参照HTML属性重要性、或者先参照HTML标签的关联度再参照HTML属性重要性、或者先参照HTML属性重要性再参照HTML标签的关联度、或者参照二者同时进行。在步骤245的标签和/或属性的移除过程之后,生成经过泛化的XPath路径表达式,其具有更宽的查询范围。所述流程返回步骤215,用经过泛化的XPath来遍历HTMLDOM树并定位其中的元素,并重复上述的循环过程。直到返回找到的网页元素(结果节点集合)(步骤225)或者返回定位错误的消息(步骤235)之时,所述流程跳出循环过程并结束。和方法的详细介绍。为了使本领域技术人员更好地理解所述系统和方法,下面将结合图3-5通过若干示例来详细说明本发明的实施例。首先参见图3,图3示出了针对新布局的自适应特性的本发明的一个16实施例。图3左边是初始的网页310,例如,用户所需的网页元素是一个表格,对应的HTML标签是〈form〉,其可以用XPath表示为/html/…/div/form,这是初始的XPath路径表达式,其中在节点html与/div/form之间省略了若干节点。当网页被动态改变之后,该表格将可能被安置在网页中的不同位置。例如参见图3右边的改变后的网页320,<form>标签被移入一张表中,其可以用XPath表示为/html/…/table/tr/td/div/form。当用户试图通过初始的XPath路径表达式来访问所需表格时,首先将初始阈值设为0,并开始如图2所示的循环过程,每一次循环都会使阈值增加,使得XPath路径表达式被逐渐地泛化。参见图3中示出的HTML知识数据库130中的标签关联度表,div、table标签相对于form来说关联度权重值较低(分别为0.1、0.2)。此外,尽管该标签关联度表中未示出tr、td标签,但本领域技术人员可以预期,这两个与table相关的标签应该具有与table标签基本相同的权重值。因此可以预期,当阈值递增到0.2时,这些标签都将被移除,并且可以生成经过泛化的XPath路径表达式/html…〃form。于是根据该经过泛化的XPath可以定位到用户所需的表格元素。随后,该表格元素被返回。由此可见,尽管该表格元素在网页中的位置被改变,其仍然可以被成功定位。类似地,参见图3右边的改变后的网页330,该表格被安置在网页中的另一不同位置,即,XPath路径表达式中的〈div〉被移除。在如图2所示的方法流程中,当初始乂?3仂被泛化为/1^1111...〃1"01"111时,可以定位到用户所需的表格元素。由此可以看出,本发明对于动态网页的新布局是自适应的。下面参见图4,图4示出了通过使用属性知识来过滤干扰的本发明的一个实施例。图4左边是初始的网页410,例如,用户所需的网页元素是一个表格,对应的HTML标签是〈formaction=,,a,,>,其可以用XPath表示为/html/…/div/form②action-al,这是初始的XPath路径表达式,其中在节点html与/div/form之间省略了若干节点。当网页被动态改变之后,例如参见图4右边的改变后的网页420,原来的表格被移到标签〈dh^之外,并移入一张表中,并且在该网页中添加一个新的表格,对应的HTML标签是〈formaction="b">,其出现在标签〈div〉之内。当用户试图通过初始的XPath路径表达式来访问所需表格时,首先将初始阈值设为0,并开始如图2所示的循环过程,每一次循环都会使阈值增加,使得XPath路径表达式净皮逐渐地泛化。由图3可知,改变后的网页420中的div、table标签均不会影响到本发明对于所需表格的定位。进一步地,参见图4中示出的HTML知识数据库130中的属性重要性表,与form标签中的action属性相对应的阈值为0.8,因此在阈值逐步递增并小于0.8的过程中,也即XPath路径表达式被逐步泛化的过程中,该属性将一直被保留。由此,通过作为区别特征的action属性,后一新添加的表格(<formaction=,,b,,>)将不会被选择作为结果节点。并且当XPath被泛化为/html…〃formt②action-al时,可以定位到用户所需的表格元素。随后,该表格元素被返回。由此,尽管该表格元素在动态网页中的位置被改变,并且在网页中增加了另一类似的表格,用户所需的初始表格仍然可以被成功定位。通过本示例可以看出,本发明可以通过使用属性知识来过滤干扰。下面参见图5,图5示出了通过使用结构知识来过滤干扰的本发明的一个实施例。图5左边是初始的网页510,例如,用户所需的网页元素是节点〈a〉,其可以用XPath表示为/html/…/a,这是初始的XPath路径表达式,其中在节点html与a之间省略了若干节点。而在初始网页中还存在若干类似的网页元素,即,类似的节点<3>,它们可以用XPath表示为/html/.../div/h2/a。当网页^皮动态改变之后,例如参见图5右边的改变后的网页520,用户所需的节点〈a〉被移到标签〈div〉之内。当用户试图通过初始的XPath路径表达式来访问所需节点<3>时,首先将初始阈值设为0,并开始如图2所示的循环过程,每一次循环都会使阈值增加,使得XPath路径表达式被逐渐地泛化。在此假定标签<112>与">的关联度很紧密,即对应的关联度权重值较高。本领域技术人员可以理解,由于该标签关联度可以被人工调整,因此所对应的权重值较高是可能的。当XPath被泛化为/html…〃a时,由于标签<12>的存在作为区别特征,初始网页中的类似节点<3>将不会影响到本发明对改变后的网页中的所需节点<狂>的定位,从而可以定位到用户所需的元素。随后,该元素^皮返回。由此可见,尽管该元素在网页中的位置被改变,并且在初始网页中存在多个类似元素,但用户所需的初始网页元素仍然可以被成功定位。通过本示例可以看出,本发明可以通过使用结构知识来过滤干扰。注意,如果不是通过HTML知识数据库的协助,纯粹的相对XPath无法过滤掉如上所述的干扰(类似元素),也就无法实现在动态网页中自适应地定位网页元素的目的。以上详细描述了根据本发明的实施例的自适应地定位动态网页元素的系统和方法。如本领域普通技术人员可以了解的,本发明可以体现为方法、系统和/或计算机程序产品。因此,本发明可以呈现为完全硬件实施形式、完全软件实施形式或者软件和硬件组合实施形式。此外,本发明可以被呈现为在机器可读媒体上包括的计算机程序产品,机器可读媒体上存储了用于对计算机系统进行编程以执行根据本发明的过程的机器可执行程序指令。这里所使用的术语"机器可读媒体"包括向计算机系统提供用于执行的指令的任意媒体。这种媒体可以采用多种形式,包括但是不局限于非易失性媒体、易失性媒体和传输媒体。非易失性媒体的常见形式例如包括软盘、软磁盘、硬盘、磁带或者任何其它磁媒体、光盘ROM(CD-ROM)或者任何其它光々某体、打孔卡或者任何其它带有孔图案的物理媒体、可编程ROM(PROM)、可擦写PROM(EPROM)、电EPROM(EEPROM)、闪速存储器、任何其它存储芯片或者盒式磁带(cartridge)、或者计算机系统可以读取并适合存储指令的任何其它媒体。适于存储和/或执行程序代码的数据处理系统将包括直接地或通过系统总线间接地耦合于存储器单元的至少一个处理器。存储器单元可以包括在程序代码的实际执行期间使用的局部存储器、海量存储装置、以及高速緩冲存储器,该高速緩冲存储器提供了至少某种程序代码的临时存储以便减少在执行期间必须从海量存储装置检索代码的次数。此外,可以理解,方框图和/或流程图中的每个方框以及方框图和流程图中的一些方框的组合可以用一些计算机程序指令实现。这些计算机程序指令可以提供给一通用计算机、专用计算机或其它可编程数据处理设备的处理器以产生一机器,使得这些指令通过计算机或其它可编程数据处理设备的处理器的执行创建用于实现在方框图和/或流程图内或者方框内所指定的功能的装置。尽管已经参考优选实施例具体地示出并描述了本发明,但其不是为了以公开的形式穷举或限制本发明。对于本领域的普通技术人员,可以在形式上和细节上进行各种改变而不会背离本发明的精神和范围。选择并描述了实施例是为了最好地解释本发明的原理和实际的应用,以及为了使本领域的其它普通技术人员能够理解对于各种实施例的本发明,所述实施例具有适合于预期的具体使用的各种修改。权利要求1.一种自适应地定位动态网页元素的系统,包括XPath泛化器,用于基于描述HTML标签的关联度以及属性的重要性的HTML知识数据库对网页元素的XPath路径表达式执行泛化过程;以及增强XPath解析引擎,用于通过泛化后的XPath路径表达式在目标网页的HTML文档对象模型树中搜索所述网页元素。2.根据权利要求l所述的系统,其中所述HTML知识数据库进一步包括HTML标签关联度表和HTML属性重要性表,其中所述HTML标签关联度表用于表示HTML标签之间的关联度,所述HTML属性重要性表用于表示HTML属性相对于HTML标签的重要性。3.根据权利要求2所述的系统,其中所述HTML标签之间的关联度和所述HTML属性相对于HTML标签的重要性分别用权重值来表示。4.根据权利要求3所述的系统,其中所述增强XPath解析引擎进一步用于当根据所述XPath路径表达式在所述HTMLDOM树中找到元素时,输出结果集合;以及当没有找到元素时,通知所述XPath泛化器对所述XPath路径表达式进行进一步泛化。5.根据权利要求4所述的系统,其中所述XPath泛化器进一步用于基于所述HTML知识数据库,从所述XPath路径表达式中移除关联度未达到一阈值的标签。6.根据权利要求4所述的系统,其中所述XPath泛化器进一步用于基于所述HTML知识数据库,从所述XPath路径表达式中移除重要性未达到一阈值的属性。7,根据权利要求5或6所述的系统,其中所述XPath泛化器进一步用于当所述增强XPath解析引擎没有找到元素时调整所述阈值。8.根据权利要求7所述的系统,其中取决于对于所需网页元素的查找粒度和/或对系统性能的需求,改变所述阈值的调整幅度。9.根据权利要求5或6所述的系统,其中所述XPath泛化器进一步用于当所述阈值达到一个预先设置的极限值时,通知所述增强XPath解析引擎停止执行网页元素定位过程,并返回定位错误的消息。10.—种自适应地定位动态网页元素的方法,包括基于描述HTML标签的关联度以及属性的重要性的HTML知识数据库,对网页元素的XPath路径表达式执行泛化过程;以及通过泛化后的XPath路径表达式在目标网页的HTML文档对象才莫型树中搜索所述网页元素。11.根据权利要求10所述的方法,其中所述HTML知识数据库进一步包括HTML标签关联度表和HTML属性重要性表,其中所述HTML标签关联度表用于表示HTML标签之间的关联度,所述HTML属性重要性表用于表示HTML属性相对于HTML标签的重要性。12.根据权利要求11所述的方法,其中所述HTML标签之间的关联度和所述HTML属性相对于HTML标签的重要性分别用权重值来表示。13.根据权利要求12所述的方法,其中所述方法进一步包括当根据所述XPath路径表达式在所述HTMLDOM树中找到元素时,输出结果集合;以及当没有找到元素时,对所述XPath路径表达式进行进一步泛化。14.根据权利要求13所述的方法,其中所述方法进一步包括基于所述HTML知识数据库,从所述XPath路径表达式中移除关联度未达到一阈值的标签。15.根据权利要求13所述的方法,其中所述方法进一步包括基于所述HTML知识数据库,从所述XPath路径表达式中移除重要性未达到一阈值的属性。16.根据权利要求14或15所述的方法,其中所述方法进一步包括当没有找到元素时调整所述阈值。17.根据权利要求16所述的方法,其中取决于对于所需网页元素的查找粒度和/或对系统性能的需求,改变所述阔值的调整幅度。18.根据权利要求14或15所述的方法,其中所述方法进一步包括当所述阈值达到一个预先设置的极限值时,停止执行网页元素定位过程,并返回定位一睹误的消息。全文摘要一种自适应地定位动态网页元素的系统和方法。所述系统包括XPath泛化器,用于基于描述HTML标签的关联度以及属性的重要性的HTML知识数据库,对网页元素的完整的XPath路径表达式逐步地执行泛化过程;以及增强XPath解析引擎,用于通过泛化后的XPath路径表达式在目标网页的HTMLDOM树中搜索所述网页元素。本发明通过结合HTML知识数据库而使得能够在动态的网页中不管各种网页内容的变化而基于XPath来定位所需的Web内容。文档编号G06F17/30GK101593184SQ20081010887公开日2009年12月2日申请日期2008年5月29日优先权日2008年5月29日发明者付荣耀,俞益琴,赵石顽,伟高申请人:国际商业机器公司