用于应用爬取器的方法和装置的制作方法

文档序号:6553591阅读:229来源:国知局
专利名称:用于应用爬取器的方法和装置的制作方法
技术领域
本技术领域涉及搜索引擎,并且更具体地涉及能够搜索视频文件
且被设计为从现代网页和web应用中提取详细信息的搜索引擎。本 发明的应用爬取器与标准web爬取器在许多方面有显著的不同。
背景技术
标准web爬取器(crawler)最初为网页而设计,其中大量关于网 页的有用信息包括在HTML文本文件T中。图1A示出了将现有的 标准web爬取器应用到当前网页时的不足。在现有的网页中,在多 种不同的文件中包括关于网页的有用信息越来越普遍,这些信息在浏 览器中被组合以创建完整的应用。现代web应用中所使用的一般文 件包括
*多个HTML文件和框架集
*图像文件,例如GIF或JPEG
* Javascript、 Jscript和VBScript文件
* XML数据文件
* ActiveX控件或者浏览器插件 *视频和音频流
參Flash动画
* HTML行为
*嵌入式媒体播放器
在当前的现代web应用中,对于单个网页而言,根据所有这些 技术来创建网页是很平常的。因此,今天的网页不再是简单的静态文 档。在许多情况下,他们是多功能性的动态应用,这些功能性动态应 用保持复杂的状态并且执行缜密的动作以响应用户的输入或其他浏览器或定时器事件。
因此,需要一种被专门设计成能够理解这些现代web应用中的 有用信息并能够从这些现代web应用中提取有用信息的应用程序。 因此,其能力远远超越传统web爬取器的能力,这种传统web爬取 器一般只能理解诸如HTML、 PDF之类的静态文件类型。

发明内容
本发明为以上论述的至少一些缺陷提供了解决方案。具体地,本 发明的一些实施例提供了一种爬取器,其不仅解析HTML文件中的 文本,而且检查指示存在视频文件的链接的内容。本发明提供了一种 改进的爬取器,其可以更加彻底地在因特阿上搜索文件,例如视频文 件、媒体文件、多媒体流服务和/或非静态文件类型,但不仅限于此。 本发明还提供了一种改进的爬取器,其能够在因特网上搜索特定的信 息段,例如文本串、图像、文档对象模型的节点和/或一般包括在现 代web应用中的其他种类的数据对象,但不仅限于此。与现有的因 特网爬取器相比,本发明可以从网页中提取更加详细的信息。此处所 述的这些和其他目的中的至少一些将由本发明的实施例来实现。
在一个方案中,本发明提供了一种在文档或应用的对象空间或对 象模型中(特别是在因特网上)爬取(crawl)对象的方法。特别地, 本发明爬取万维网(WWW)中的对象模型。当在web上执行文件或 页面时,可以将本发明的爬取器应用于功能性应用或者实例化的应 用,而不仅仅是非实例化的应用和/或静态文档。这个索引出现在单 个web应用内和遍布因特网的多个web站点上。这可以涉及检查对 象模型,并且在许多机器、网络或者站点上进行该检查。在一个实施 例中,对象空间的爬取或者索引出现在应用和/或网络的分布式集合 上。在过去,不需要这么做,因为先前web文档的页面一般是单一 的和静态的,并且不需要被实例化来完全探知其中的内容。而现在的 应用和文档己经变得十分复杂,从而期望爬取对象空间以寻找所有可 用的内容。另外,以前,通过现有技术不容易访问到这些对象,并由 此没有将爬取器设计成爬取对象空间。在本发明的一个实施例中, 一旦文档被实例化,就发生对对象空 间的爬取。换言之,本发明爬取功能性应用。这使得爬取器能够在应 用或网页被实例化后就寻找被加载的另外的对象或者元素。在不进行 实例化的情况下,许多内容可能是不可见的。就能够被找到的内容而 言,读取的静态文件和已经在运行的应用中被实例化的文件之间存在 差异。
在本发明的一个实施例中,提供索引器,其可以到达并检査任何 电子形式的文档或应用媒体文件并编制其内容的索引。其通过到达该 应用的任何节点或者元素并将其记录在数据库中或者让指针指向它 来实现。该方法适用于实例化的应用的对象模型(段或对象)的任何 节点和元素。
更具体地,在一个实施例中,可以将本发明的应用爬取器配置为
加载、组装和实例化全部web应用。如图1B所示,当今的网页载有 多种组件,例如可以同时运行的脚本和嵌入式控件,但不仅限于此。 在该图的上部,具有使用动态HTML的页,传统的爬取器没有被设 计用于这种使用动态HTML的页。本发明可以提供能够加载和实例 化所有这些组件的爬取器。在该应用的实例化实例中,其寻找软件对 象,该软件对象可以指示例如(但不限于)视频内容等内容。爬取器 将模拟在网页上按下按钮或者点击链接并将利用这种方法搜集的信 息存储到文件或数据库中。
在本发明的另一个实施例中,提供了一种用于应用爬取器的方 法。1)在一个方案中,应用爬取器可以加载共同创建web文档(不 仅仅是HTML文档)的所有组件。作为实例而非限制,其包括多个 HTML文档、多个脚本、嵌入式软件、加载到背景中的样式表、html 行为(单独脚本)、XML文件和/或所有为网页加载的各种文件。2) 在另一个方案中,应用爬取器可以被设计为将网页的多个组件组装成 一个并被实例化,因此其被看作一个应用,这与文本文档不同。3) 在又一个方案中,该应用爬取器可以得到该对象表示,然后取出与文 件(例如但不限于视频文件)有关或与显示给用户的信息有关的元数 据的特定段。也就是说,对象空间中可用的元数据可以不与"文件"有关,而是与任何正在显示的信息有关。还需要考虑的时间线。相关
的元数据可以与当前正显示的信息有关,这或者是作为web应用所 确定的预定时间线的结果(在Flash动画中常见)或者作为具体用户 动作的结果(例如出现弹出窗口是用户点击的结果)。在一个实施例 中,该应用可以到达视频流或视频播放器并且拽取出相关的数据。本 发明可以考虑由视频流激发的事件并通过这种方式获得信息。
在本发明的另一个实施例中,可以使用RSS订阅(RSSfeed)来 将目标URL提供给爬取器,以用于检査。在该实施例中,爬取器可 以检査整个对象空间和对应于所提供URL的实例化web应用的对象 模型。爬取器可以从媒体播放器或者web应用中的其他地方提取元 数据。这样,在该实施例中,爬取是经由RSS指针到页。该爬取器 由RSS订阅指引,该RSS订阅提供一个具有http链接的URL。这样, 爬取可以包括1)爬取可点击项目的树并且以用户可能的方式(但 是是以等同或类似于人的方式的自动方式)将他们激活和/或2)经由 页或应用的种子列表进行爬取(例如URL列表、应用指针列表或者 来自RSS订阅的列表)。
在本发明的另一个实施例中,应用爬取器可以使用以下三种模板 中的任意一种1)—种用于站点自身的模板(定时、商业等,在哪 开始搜索),2)链接探测器(寻找链接),和/或3)用于数据提取的 模板(标题、导演、作者等的位置)。例如,爬取和索引可以基于暂 时事件(其他事件出现时同时出现的变化的暂时同步)、空间关系(可 视空间关系)或其他触发器而出现。使用第一种模板,爬取器模拟终 端用户的活动,例如点击网页上的按钮。定时事件(例如在30秒后 看一个对象)也可以是一个受控的模板并且允许爬取器更彻底地探查 网页。所述模板可以指示爬取器等待一定的时间间隔,然后再次搜索 对象树。控制定时的这种模板特别适用于挖掘当今复杂网页中的内 容。
模板还可以用于从实例化的应用中提取特定的信息段。爬取器可 以使用模板来识别对象模型的部分或者节点、文本串、应用的对象空 间中的单个对象或者对象集合,和/或包括在应用中的页或文件。作
24为非限制性的实例,本发明的爬取器可以搜集关于视频持续时间、视 频分辨率、视频标题、视频说明、视频质量、视频来源和/或其他相 关信息的信息。搜集的元数据被存储在数据库中。应该理解的是,在 一个实施例中,模板可以是指令集和/或编程代码,其指示爬取器如 何爬取网页、应用等和/或对网页、应用等编制索引。
本发明还可以包括用于爬取媒体播放器对象的应用爬取器。遍历 对象树使用非常简单的应用爬取器。爬取器可以知道将进行视频播
放。这种简化的爬取器可以验证URL以确保数据完整性并且还可以 定位视频文件。这种简化的爬取器对富动态内容(例如,广告等)的 一些网页是有用的,加载所有文件可能是负担。
在本发明的一个实施例中,提出了一种计算机实现的方法,其包 括对多个运行的被实例化的文档或应用的对象模型进行爬取和编制 索引。该方法可以包括爬取,其包括逐个访问各个机器,以便遍历每 台机器上的至少一个文档或应用。这些机器可以位于不同的物理位 置,并且耦合到计算机网络上。爬取还可以包括以与人工用户的方式 基本类似的自动方式跟踪可点击项目树并激活这些项目。
本方法可以包括跟踪页或应用的种子列表。本方法包括跟踪选自 下列列表中的至少一个的页或应用的种子列表URL列表、应用指 针或RSS订阅。该方法可以包括遍历被实例化的文档或应用的对象 方法中的对象树。该方法可以包括遍历被实例化的文档或应用的对象 模型中的对象树并记录对象位置和内容。本方法可以包括加载文档或 应用;实例化文档或应用;遍历实例化文档或应用的对象模型中的对 象树。本方法可以包括到达正运行的被实例化的文档或应用的对象模 型中的任何节点并将该节点记录在数据库中。在另一个实施例中,本 方法可以包括到达正运行的被实例化的文档或应用的对象模型中的 任何节点并将该节点的指针存储在数据库中。在另一个实施例中,本 方法可以包括将与媒体有关的多个通用资源定位符(URL)存储在数 据库中。
本方法可以包括遍历被实例化的文档或应用的对象模型中的对 象树并模拟鼠标、键盘或其他用户事件。本方法可以包括在鼠标事件、键盘事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个 限定的时间段,然后遍历对象树。本方法可以包括在鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后遍历作为事件结果而被显示的新的应用或文档的对象 树。所述对象可以是被实例化的文档或应用的对象模型的任何节点或 元素。正被爬取的文档或应用可以包括下列各项中的至少一项字处
理文件、Acrobat文件、电子数据表、浏览器应用、媒体播放器、多 媒体应用或者嵌入在媒体流中的元数据报头。正被爬取的文档或应用 可以包括操作系统。正被爬取的文档或应用可以包括文件系统。
本方法可以包括爬取下列类型的网络内联网、单机或者单机上 的多个应用。本方法可以包括爬取因特网。本发明可以包括爬取 TCP/IP网络上的任何设备。本方法可以包括爬取公用网络上的任何 设备。本方法可以包括爬取专用网络上的任何设备。本方法可以包括 被完全实例化的应用或文档。在本发明的一些实施例中,仅实例化应 用或文档的一部分。本方法可以包括实例化视频文件。本方法可以包 括实例化视频流。本方法可以包括将数据查询接口添加到正运行的被 实例化的文档或应用中的软件对象,以便与应用爬取器连接。本方法 可以包括降低安全控制以允许访问对象模型。
在本发明的另一实施例中,提出了一种计算机实现的方法,以便 通过计算机网络搜索视频文件。本方法包括爬取和索引多个正运行的 被实例化的文档或应用的对象模型以定位视频文件。
在本发明的另一实施例中,提出了一种计算机实现的方法,以便 创建可搜索的数据库。本方法包括爬取多个正运行的被实例化的文档 或应用的对象模型以定位视频文件;通过将指向视频文件的指针保存 在数据库中来为在对象模型中找到的视频文件编制索引;以及从对象 模型中提取关于视频文件的元数据并将该元数据保存在数据库中。
在本发明的另一实施例中,提出了一种通过因特网搜索文件的计 算机实现的方法,包括提供一个协议爬取器以便识别富视频的web 站点;以及提供应用爬取器。该应用爬取器可以包括査看器,其用于 动态实例化和组合所述富视频web站点之一的网页的所有组件,以创建至少一个被实例化的web应用。应用爬取器可以还包括提取器, 其用于识别包括有用信息的被实例化web应用的特定部分并提供提 取该信息到元数据记录所需要的逻辑;以及爬取器,其用于分析被实 例化的web应用、査找并分析该应用中的所有可点击项目、通过插 入事件来驱动web应用、以及从应用中提取信息并将其写入文件或 数据库。
在一个实施例中,查看器可以包括用于下列各项中至少一项的软 件组件的代码文档对象模型(DOM)工具,其用于一个或多个浏 览器;脚本引擎,其能够执行JavaScript、 JScript、 ECMAScript或者 VBScript; XML解析引擎;层叠样式表引擎;网络I/O库;HTML 解析和渲染引擎;用于执行诸如ActiveX控件等嵌入式控件的引擎; 以及用于渲染web应用的引擎。
在一个实施例中,提取器可以包括用于下列各项中至少一项的软 件组件的代码XSL引擎;XPath工具;正则表达式引擎;脚本执行 引擎;用于组件的嵌入式对象査看器,组件例如是ActiveX和COM 对象,但不仅限于此;网络传输代理,例如http代理;rtsp或其他多 媒体流代理;软件桥,其与外部程序框架的类库一起处理数据;分类 引擎,其用于对元数据分类;或者文本解析和处理引擎。
在一个实施例中,爬取器可以包括用于下列各项中至少一项的软 件组件的代码文件I/0库;网络I/0库;或者用于生成和存储曰志 文件的库。
在本发明的另一个实施例中,提出了一种计算机实现的方法,以 便通过因特网搜索文件。本方法包括查找目标URL;下载目标URL 的HTML文件;基于HTML文件中的信息,下载用于构建完整web 应用的补充数据文件;组装来自所述补充数据文件和HTML文件的 应用组件;实例化应用组件以创建web应用;应用数据查询接口到 web应用中的所有对象,其中该web应用可能包括有用的数据;加载 预定义的应用模板或者生成并自动定义应用模板;运用应用模板以从 web应用提取所有需要的信息;将所需要的信息作为结构数据信息记 录保存到文件或数据库;检查web应用中的所有组件以识别可以响应鼠标事件或形成可点击项目的所有可能组件;确定自上一次模拟鼠 标事件后己经出现了哪些可点击项目;将新的可点击项目存储在适当 的数据结构中,例如包括在所有可能应用状态下的应用中的所有可点 击项目树的新的分支;以及模拟鼠标点击可点击项目树的当前分支中 的第一个可点击项目。
本发明可以包括重复该方法,直到已经遍历了整个可点击项目树 为止。实例化步骤包括下列各项中的至少一项渲染HTML并且构 造文档对象模型;应用样式表;执行适当的脚本解释器中的脚本;激 活任意控件或者插件,例如ActiveX控件;启动视频流或音频流;启 动动画,例如Flash动画;或者执行HTML行为脚本。
在本发明的另一个实施例中,计算机系统包括具有程序代码的应 用爬取器,该程序代码用于从web站点爬取正运行的、被实例化的 文档或应用的对象模型并为其编制索引。该系统还可以包括协议爬取 器,以识别所检查的web站点,其中所述应用爬取器从web站点爬 取正运行的、被实例化的文档或应用的所述对象模型并为其编制索 引。该应用爬取器可以包括查看器,其用于动态实例化和组合web 站点之一的网页的所有组件,以创建至少一个被实例化的web应用。 应用爬取器还可以包括提取器,其用于识别包括有用信息的被实例化 的web应用的特定部分并提供提取该信息到元数据记录所需要的逻 辑。另外,应用爬取器可以包括爬取器,其用于分析被实例化的web 应用、査找并分析该应用中的所有可点击项目、通过插入事件来驱动 web应用、以及从应用中提取信息并将其写入文件或数据库。协议爬 取器识别用于检查的web站点,该web站点包括至少一个视频文件, 至少一个媒体文件,或者下列文件中的至少一个mpeg文件、avi 文件、rm文件、flash文件、a .ts文件、a .wmv文件或Quicktime 文件。应用爬取器配置为査看可点击项目树并以自动方式激活每一个 项目,这种自动方式基本类似于人工用户的方式。应用爬取器可以使
用模板,其配置为用于下列各项中的至少一项数据提取、跟踪链接 的定时、爬取的深度、如何跳过广告、从何处开始爬取、査找链接、 标题的定位、媒体文件元数据的定位、时间同步或者指示爬取器等待特定的事件间隔,然后再次爬取对象树。
在本发明的另一实施例中,提出了一种计算机系统,其包括应用
爬取器和用于识别富视频web站点的协议爬取器。该应用爬取器可 以包括查看器,其用于动态实例化和组合所述富视频的web站点之 一的网页的所有组件,以创建至少一个被实例化的web应用;提取 器,其用于识别包括有用信息的被实例化的web应用的特定部分并 提供提取该信息到元数据记录所需要的逻辑;以及爬取器,其用于分 析被实例化的web应用、查找并分析该应用中的所有可点击项目、 通过插入事件来驱动web应用、以及从应用中提取信息并将其写入 文件或数据库。
在本发明的另一实施例中,提出了一种计算机实现的方法,其接 收目标URL以及编制多个正运行的、被实例化的文档或应用的对象 模型的索引。接收步骤可以包括接收URL列表。接收步骤还可以包 括接收下列各项中的至少一项URL列表、应用指针列表或者RSS 订阅。本发明可以包括遍历被实例化的文档或应用的对象模型中的对 象树。
在本发明的另 一实施例中,计算机程序产品包括计算机可用介质 和包括在所述计算机可用介质上的计算机可读代码。计算机可读代码 包括计算机可读程序代码,该计算机可读程序代码配置为使计算机实 施对正运行的被实例化的文档或应用进行爬取并为其编制索引。
通过参照说明书的余下部分和附图,对本发明的本质和优点的进 一步理解将变得显而易见。


图IA示出了现有爬取器的査找结果;
图IB示出了本发明的爬取器所找到的更具体的信息;
图2是本发明的一个实施例的示意图3是查看器的一个实施例的示意图4是提取器的一个实施例的示意图5是爬取器的一个实施例的示意29图6示出了本发明方法的一个实施例;
图7示出了本发明方法的另一个实施例;
图8是数据融合的一个实施例的示意图; 图9示出了本发明方法的另一个实施例。
具体实施例方式
应该理解的是,上述总体说明和下列具体说明都仅仅是示例性和 说明性的,而非是对本发明的限制,如所要求的那样。应该注意如 说明书和所附权利要求所使用的那样,单数形式亦指代复数形式,除 非上下文清晰指示不是这样。因此,例如,"爬取器"可能指代多个 爬取器等。此处所引用的参考文献通过援引并入本说明书中,除非他 们明显与说明书中所提出的技术相矛盾。
作为概述,诸如爬取器等程序将对计算机网络进行预遍历以搜索 文档(例如网页)并且构建大的索引文件或者文档中所找到的链接、 关键词和/或元数据的数据库。当用户确定一个包括一个或多个搜索 条件的査询时,用户将该查询提交给搜索引擎的另-个程序。作为响 应,该搜索引擎査看其索引文件并且显示匹配该搜索査询的文档列 表, 一般为超链接。然后,用户一般将激活其中的一个超链接以便观 看文档中所包括的信息。
如图1A和图1B所示,在搜寻诸如(但不限于)媒体文件之类
的文件方面,Truveo应用爬取器10对传统爬取器进行了大量改进。 如图1B所示,爬取器10可以检査并操作包括多种组件的复杂web 应用,这些组件例如是视频流11,背景加载XML数据岛12,浏览 器插件和ActiveX控件13,脚本生成HTML片段14,非锚(non-anchor) "onClick"链接15,由脚本执行、用户事件或定时器事件所产生的 表元素、页元素16,动态应用的样式表17, HTML行为18等等,但 不仅限于此。爬取器10可以检查并操作web应用,该web应用包括 单个或多个文档、帧、框架、文件、对象、应用程序和/或窗口。可 以将关于每个媒体文件的信息作为视频数据记录保存在数据库中。视 频数据记录19可以包括(但不限于)诸如标题、描述、URL、类型、视频时间或者长度、比特率和日期之类的信息。
作为概述,本发明的一个实施例可以包括协议爬取器2、储存库 4、推荐引擎6以及应用爬取器10。协议爬取器2是高吞吐量HTTP 引擎,其爬取web并识别可以提供视频内容的站点。协议爬取器2 指挥应用爬取器IO来爬取特定的站点并为其编制索引。将应用爬取 器10收集的信息存储在储存库4中。可选地,推荐引擎6可以用于 帮助提供对针对储存库发出査询的有用响应。
Truveo应用爬取器的设计
现在参考如图2所示的实施例,Truveo应用爬取器10可以包括 三个组件,这三个组件协调工作以提供完整功能。这三个组件是(l) 査看器20, (2)提取器30,以及(3)爬取器40,将在下面对他们 进行说明。然而,应该理解,这只是本发明的一个实施例,而其他实 施例可能以不同的顺序来组合这些组件的功能性或者将这些组件的 功能性组合在较少的组件中。作为一个非限制性实例,查看器20可 以与提取器30组合,查看器20可以与爬取器40组合,等等。
作为概述,应用爬取器10的技术使得能够爬取当今的复合web 应用。作为爬取器10的非限制性实例,査看器20动态地实例化所有 的组件并将这些组件组装成一个完整的功能性应用。提取器30可以 是自适应数据挖掘引擎,其使用XPath、脚本、XSL和DOM导航以 提取大量的元数据。爬行引擎40识别动态链接并产生用户事件和定 时器事件。应该理解的是,关于图2,本发明的一些实施例可以具有 RSS订阅9 (虚线所示)和其他XML订阅或者甚至简单的web站点 列表,作为应用爬取器10的独立输入源,代替协议爬取器2。应用 爬取器10的另一实施例在没有协议爬取器或者RSS订阅作为输入的 情况下使用。
查看器
在本实施例中,査看器20负责下载所有的web应用组件、实例 化web应用并且将"数据査询接口"应用到存在于该应用中的所有 对象上。为了实现该功能,査看器20可以提供几个软件组件,这些 软件组件可以用来执行这些任务,如图3所示。作为实例而非限制,这些软件可以任意包括
用于一个或多个浏览器的文档对象模型(DOM)工具21;
能够执行JavaScript、 JScript、 ECMAScript、 XAML或者VBScript
的脚本引擎22;
XML解析引擎23;
层叠样式表引擎24; 网络1/0库/引擎25;
HTML解析和渲染引擎26;
用于执行诸如ActiveX控件等嵌入式控件的引擎27; 用于渲染web应用的引擎28。
在本实施例中,査看器20下载和实例化如下的web应用组件。 首先,它下载给定目标URL的HTML页或者框架。这可以使用标准 HTTP GET操作来实现。基于父HTML页或者框架中的内容,査看 器20随后下载所有用于组装完整应用的附加文件。这些文件包括脚 本,图像,样式表,数据文件,插件,ActiveX控件,音频或视频流, 或者支持完整应用所需要的任何其他组件。
一旦下载了所有的应用组件文件,然后查看器20就通过使用适 当的软件组件(例如上面列出的软件组件)来实例化该应用。
一旦已经实例化了所有的单独应用组件,并且整个web应用已 经被组装,则査看器20将"数据査询接口"应用到所有被实例化的 软件对象。这些"数据査询接口"可以是封装模块(wrapper),该封 装模块(wrapper)使用标准接口来封装web应用中的软件对象,Truveo 应用爬取器10可以使用所述标准接口从页中以自动化方式提取信 息。例如,"数据查询接口"可以应用到文档对象模型中的每一单个 元素,这使得应用爬取器10能够查询该DOM元素的任何属性和样 式。类似地,"数据査询接口"可以应用到在web应用中实例化的每 个媒体播放器,这使得应用爬取器10能够向媒体播放器查询媒体播 放器的属性以及关于任何下载的音频或视频流的元数据。可选地,应 该理解的是,"数据查询接口"的一些实施例可以不使用封装模块来 封装软件对象。 一些实施例可以使用直接连接。提取器
Truveo应用爬取器10的这个实施例的第二主要组件是提取器 30。在本发明的当前实施例中,提取器30负责识别被实例化web应 用中包括有用信息的特定部分并且提供提取该信息到元数据记录所 需要的逻辑。为了实现该功能,提取器30提供多个软件组件,所述 软件组件用于执行这些任务,如图4所示。作为实例而非限制,这些 软件组件可以任意包括
XSL引擎31;
XPath工具32;
正则表达式引擎33; 脚本执行引擎34;
用于组件的嵌入式对象査看器35,组件例如是ActiveX和COM 对象,但不仅限于此;
网络传输代理36,例如http代理; rtsp或其他多媒体流代理37;
软件桥38,用于使用外部程序设计框架的类库来处理数据(例 如,连接.NET的桥来进行元数据的附加处理); 分类引擎39,其用于对元数据进行分类; 文本解析和处理引擎41。
在本实施例中,提取器30通过以下各项来识别包括有用信息的 web应用中的特定部分(1)、使用自动算法来识别包括有用数据的 应用中的对象;(2)、使用预定义模板,所述模板使用有用数据来识 别对象;或者(3)、 (1)和(2)的组合。作为提取器用来识别web 应用中的信息的自动算法的非限制性实例,提取器可以基于在特定时 间发生的DOM的变化、基于相对于页上特定对象的空间接近性、基 于可视特性或者可视样式、基于对存在的特定DOM结构的识别和/ 或基于对web应用中存在的特定文本或其他类型的信息的识别来识 别信息。应该理解的是,在一个实施例中,这些自动算法使用提取器 30的组件,如加载和使用的模板所指示的那样,以用于特定的网页、 应用等。作为能够用于识别有用数据的模板的非限制性实例,提取器
3330可以使用"数据査询接口"的方法或属性,所述"数据査询接口" 由查看器20、 DOM路径名、XSL或者Xpath过滤器、正则表达式、 脚本代码的片段或者上面的任意组合所应用。这些技术还可以层叠以 进一步地提炼所提取的信息。提取器30使用这种嵌入式逻辑从页中 提取所有有用的信息,并在被请求后将其以结构元数据记录的形式返 回。
爬取器
Truveo应用爬取器10的这个实施例的第三主要组件是爬取器 40。在本发明的当前实施例中,爬取器40负责分析被实例化的web 应用、寻找并分析应用中的所有可点击项目(akaonClick、点击事件 等)、通过插入事件来驱动web应用、以及从应用中提取信息并将其 写入文件或数据库。为了实现该功能,爬取器40提供多个软件组件, 依靠所述软件组件来执行它的任务。作为实例而非限制,这些软件可 以包括
文件I/0库42;
网络I/0库43;
用于生成和存储日志文件的库44; 事件监视器45。
在本实施例中,爬取器40分析web应用并且査找页中能够响应 鼠标点击事件的所有可能项目。这些项目称为"可点击项目"。为了 实现该功能,爬取器40识别页项目,例如
(1) HTML标记,例如链接(即<八>)标记,其可以响应鼠标 点击事件;
(2) 包括有效的"onClick"句柄的HTML元素,或者包括有效 "onClick"句柄的DOM中的对象的孩子;
(3) HTML元素,其关联到用于处理鼠标点击事件的HTML行
为;
(4) 任何嵌入式控件内的元素或对象,例如Flash对象或者媒 体播放器,其可以响应鼠标事件;
(5) HTML元素,当被点击时,其使网页执行表单提交。一旦爬取器40已经识别出应用中的所有"可点击项目",爬取器 40将他们存储在数据结构中,例如树,也称为"爬取树"。
在本实施例中,爬取器40还负责通过插入事件和监视事件来驱 动和监视web应用。例如,爬取器40将事件插入到应用中,例如但 不限于鼠标上移、鼠标下移或者鼠标点击事件,以便模拟用户点击链 接的动作。爬取器40还可以插入定时器事件、媒体播放器事件或者 浏览器事件,例如页面重载,以便按照需要控制web应用。这样, 作为非限制性的实例,爬取器40可以等待,直到在模拟的鼠标、键 盘或者其他用户事件后为止。爬取器40也可以等待,直到程序上生 成的事件、浏览器事件和/或媒体播放器事件之后为止。除了驱动应 用之外,爬取器40还监视该应用以便检测各种事件。例如,爬取器 40可以检测这样的事件,即指示将新的数据载入应用的时间的事件, 或者指示启动新的视频或者音频流的时间的事件。这些事件全部都由 全局应用事件监视器监视。基于出现或者没有出现的特定状态和/或 事件,事件监视器负责监视给定web应用的状态、监视web应用所 产生的事件、以及控制爬取器40的执行。作为非限制性实例,事件 监视器可以监视(1)文档对象模型的特定部分或者给定web应用或 者嵌入式控件的对象状态,(2)显示web应用所使用的部分或所有 屏幕缓冲存储器的变化,和/或(3)网页、媒体播放器或者嵌入式控 件所产生的事件。
在正常操作下,爬取器40在对应于第一目标URL的web应用 已经被完全实例化时开始操作。在这点,爬取器40识别页面上所有 的"可点击项目",然后模拟鼠标点击列表中的第一个"可点击"项 目。在这点,事件监视器监视应用的变化以响应模拟的点击。基于事 件监视器中的编码逻辑, 一旦接收到特定的事件(例如,页面加载或 者组件激活),事件监视器就触发提取器30,以返回包括来自web应 用的所有期望信息的元数据记录。然后,爬取器40获得该元数据记 录,并且将其写到存储器、文件,或者将其插入数据库。 一旦己经收 集到该数据,爬取器40就重新检查web应用并且识别自上次模拟鼠 标点击以来已经出现的任何新的可点击项目。将这些新的可点击项目附加到"爬取树"数据结构。然后,爬取器40进行到"爬取树"中 的下一"可点击项目",模拟对该项目的鼠标点击,并且重复上面的 步骤。爬取器40以这种方式继续,直到已经找到并点击web应用中 的所有可点击项目为止。当完成时,爬取器40接着进行到目标URL 列表中的下一个URL。爬取器40还可以包括用于爬取该树的模板。 在一个实施例中,模板可以包括用于导航的路径以及具体的时序指 令。应该理解的是,除了别的以外,本发明所使用的模板可以不仅仅 管理数据提取,而且还管理在何处查找链接,跟踪链接的时刻、爬取 的深度、如何跳过商业广告等。 Truveo应用爬取器的工作
现在参照图6,在其标准工作模式下,当前Truveo应用爬取器 10的实施例可以采取以下步骤。尽管下面探讨了 HTML文件的下载, 但是下面也适用于任何web应用或者文档,例如XAML、 XML、 Acrobat、 Flash文件或者任何可下载的网页,但不仅限于此。爬取器 10的方法可以包括下列步骤
1、 开始于目标URL (50)。
2、 下载给定URL的HTML文件(52)(也可以是XAML、 XML、 Acrobat、 Flash文件或者任何可下载的网页)。基于HTML文件中的 信息,下载所有补充数据文件,所述补充数据文件用于建立完全web 应用,例如,但不仅限于此.-
a. 图像文件
b. 脚本文件,例如JavaScript、 Jscript和VBScript
c. XML数据文件和/或XAML文件
d. 样式表文件
e. ActiveX组件或者插件
g. 音频流
h. 动画,例如Flash文件
i. HTML行为。
3、 当己经下载了所有应用组件时,通过执行一系列动作来实例化完整的web应用(54),所述动作例如是,但不仅限于此
a. 渲染HTML并且构造文档对象模型
b. 应用样式表
c. 执行适当脚本解释器中的任何脚本
d. 激活任何控件或者插件,例如ActiveX控件
e. 启动视频流或音频流
f. 启动动画,例如Flash动画
g. 执行HTML行为脚本。
4、 一旦完整的web应用已经被组装、实例化并且初始化,那么 就将如上所述的数据查询接口应用到可能包括有用数据的应用中的 所有对象(56)。
5、 使用事件监视器来监视应用的状态(58),并且如果满足特定 的条^K就执行下列步骤
a. 加载预定义的应用模板或者生成如上定义的自定义应用模板
(60);
b. 运用应用模板(62)以从web应用中提取所有期望的信息;
c. 将提取的数据作为结构数据信息记录保存到文件或数据库 (64)。
6、 检查web应用中的所有组件(66)以识别可以响应鼠标事件 的^f有可能组件,也称为可点击项目。确定自上一次模拟鼠标事件后 已经出现了哪些可点击项目。将新的可点击项目存储在适当的数据结 构中,例如包括在所有可能应用状态下的应用中的所有可点击项目的 树的新的分支。
7、 模拟鼠标点击可点击项目树的当前分支中的第一个可点击项 目(68),然后开始。继续重复这些步骤,直到己经遍历了整个可点 击项目树为止。
应该理解的是,对于上述方法,可以可选地跳过一些步骤,例如 应用数据查询接口 。可以改变所述步骤的顺序并且可以将一些步骤组 合成一个步骤。
现在参照图7,可以将本发明的本质视为爬取多个正在运行的、被实例化的文档或应用中的对象模型(70)并为其编制索引(72)。 再次,这可能发生在因特网范围上,并且爬取可以包括遍历不同机器 上的页、文件、文档或者应用。在检査可点击项目前,实例化这些页、 文件、文档或者应用以更加彻底地査看用于可用内容和/或元数据的 每一个。
数据融合
现在参照图8,可以将爬取器10收集的数据融合在一起。例如, 可以将从协议爬取器2提取的元数据与从应用爬取器10提取的元数 据融合。另外,来自多个源的数据融合可以出现在应用爬取器10自 身内。例如,应用爬取器可以同时査看多个与视频相关的web浏览 器(窗口)。这些网页甚至可以在不同的URI域中。本发明的实施例 可以还包括将视频流的技术数据与得自其他源的元数据相融合,所述 其他源例如是应用爬取器10、协议爬取器2、 RSS/XML订阅9或者 得自用于分析视频的工具74 (包括,但不限于将视频流的音频内容 转换成文本的语音识别工具)的元数据,但不仅限于此。元数据融合 引擎76可以将适当的指针、链接、文本或者其他来自各种源的其他 信息保存在可搜索的参考数据库中。
在本发明的另一实施例中,本发明的爬取技术包括将基于文本的 元数据与得自视频自身的技术参数相关联的能力。作为非限制性实
例,视频的技术参数可以包括持续时间、分辨率、帧速率、品质、格 式、索引图像等。此外,从应用爬取器收集的数据可以用下列各项进 行补充或与下列各项进行融合协议爬取器的数据、RSS订阅、爬取 器的操作员的编辑评论、或者内容创建者或发布者提供的数据。
如图9所示,这样做的一个方法可以包括一个过程,所述过程使 用仅具有有限功能的应用爬取器140的一个实施例。例如,在步骤 150,本发明可以使用来自RSS订阅的URL作为输入;在步骤152, 下载HTML和任何补充材料;在歩骤154,在网页中对其进行渲染(例 如,使用浏览器导航到URL),等待网页显示视频,然后向多媒体播 放器查询关于使用多媒体播放器公布的应用编程接口 (API)的视频 的信息。在该实施例中,本发明使用公布的API来査询多媒体播放器的对象模型,并且将得自多媒体播放器的元数据与输入URL的源所 提供的数据融合在一起。对于这个有限的应用爬取器,输入的URL 可能来自多个地方RSS、协议爬取器输出、XML订阅器、web应 用所使用的隐藏数据流(例如,AJAX应用使用或者简单对象访问协 议(SOAP)方法调用的XML服务)、或者包括视频的web站点的其 他目录。应该理解的是,本发明还可以包括融合呈现或显示的视频的 原本数据和技术细节的方法。如图9所示,该方法可以包括在步骤 156,应用数据查询接口;在步骤158,使用事件监视器;在步骤160, 加载模板;在步骤162,应用模板;在步骤164,保存数据;以及然 后返回步骤158。该方法可以包括在事件监视器认为条件满足后, 等待另一个目标URL。作为非限制性实例,所述条件可以包括视频 文件的结束、视频流,预定的时间段等。对于爬取器140,应该理解 的是,本发明的一些实施例可以对所有站点仅使用一个模板。其他实 施例可以仅具有模板的子集或者减少数量的模板,这些子集或者减少 数量的模板是从所述模板中选择的。
除了具有视频的网页以外,本发明还适用于下列情况
基于非浏览器的视频应用,例如下载视频和相关元数据的多媒体
播放器;
除了包括动态文本和视频广告的网页之外,具有静态信息的网页 (例如基于文本的新闻)。在该情况下,爬取器用于排除视频和其他 动态内容。
动态web应用,例如AJAX应用、wikK用户论坛、照片共享站 点、财经服务web站点、或者任何其内容独立于web服务器而变化 的网页。例如,设想本发明的爬取器创建与具体股票代码有关的所 有图像和图表的可搜索索引。
查看器的另一个特征是能够"断言"提供视频或其他动态内容的 web应用的结构。断言代码使用web站点的模板来确定web站点的 结构是否已经变化。如果站点已经变化或者视频(或者动态内容)不 再可用,则不再提取数据,并且如果其在web站点上不再可用,则 将先前提取的数据(如果有的话)从储存库中除去。该特征对于保持数据品质是重要的。
尽管已经参照其中特定具体实施例介绍并示出了本发明,但是本 领域技术人员应该意识到,在不脱离本发明的精神和范围的情况下, 可以进行程序和协议的各种改编、变化、改进、替代、删除或者增加。 例如,利用上述任意实施例,应用爬取器可以实时爬取对时间敏感的 视频。视频内容可能对时间非常敏感,并且往往只在有限的时间窗期
间可用。利用上述任意实施例,在应用爬取器(40)遍历对象后,可 能存在后处理,所述后处理包括在将数据放入储存库前的数据融合 (如上所述)或者语音至文本的识别。
利用上述任意实施例,应用爬取器可以使用元数据的许多字段来 编制内容的索引。在一个实施例中,本申请可以到达视频流或视频播 放器并且取出相关的数据。在另一实施例中,本发明可以应用于由视 频流或者与视频流协力激发的事件并利用这种方式获得信息。应该理 解的是,在一些实施例中,Truveo应用爬取器将以与浏览器相同的方 式进行web应用的渲染。因此,被实例化网页、应用等的状态与浏 览器创建的相同。这使得爬取器能够找到对象模型中的内容,其仅在 文档或文件被实例化的情况下可用。利用上述任意实施例,应该理解 的是,爬取器还可以被配置为处理视频流并且不仅限于视频流。应该 理解的是,术语"文件",如"视频文件"中的"文件"可以包括以 流的形式从服务器(即,媒体服务器)传输文件的内容。
应该理解的是,应用爬取器组装并且动态实例化网页的组件,然 后可以分析被实例化的web应用以定位网页上的期望组件。这可以 包括查找并分析该应用中的所有可点击项目、通过插入事件来驱动 web应用、以及从应用中提取信息并将其写入文件或数据库。用于组 装并且实例化web应用的组件可以如本申请所描述的那样。在其他 实施例中,可以对本实施例进行改变,例如,但不限于组合各种组件 之间的功能、增加软件组件以处理附加的应用、同时执行一些步骤等。 应该理解的是,本发明还包括搜索引擎和方法,其搜索由本发明的爬 取器创建的数据库。
此处所论述或者引用的公报仅作为本申请的申请日前的公开。现有发明不对本发明申请的授权造成影响。此外,提供的公布的日期可
能不同于实际的公布日期,这可能需要单独确认。出于各种目的,2004 年11月22日提交的美国临时申请60/630,552 (代理人案号 41702-1002)禾B 2004年11月22日提交的美国临时申请60/630,423 (代理人案号41702-1001)均以引用方式并入本文。将本文提及的所 有公报以引用方式并入本申请,以结合所提及的公报一起披露和说明 本发明的结构和/或方法。
根据本发明的目标和实践,可以预期结果的期望变化或者差异。 因此,本发明由所附的权利要求的合理的尽可能广的范围来限定。
权利要求
1、一种计算机实现的方法,包括对多个运行的、被实例化的文档或应用的对象模型进行爬取并为其编制索引。
2、 如权利要求1所述的方法,其中,爬取包括逐个走过各个机 器,以便遍历每台机器上的至少一个文档或应用。
3、 如权利要求2所述的方法,其中,各台机器位于不同的物理位置并被连接到计算机网络。
4、 如权利要求l所述的方法,其中,爬取包括跟踪可点击项目的树;以自动方式来激活项目,所述自动方式与人用户的方式基本相同。
5、 如权利要求1所述的方法,其中,爬取包括跟踪页面或应用 的种子列表。
6、 如权利要求1所述的方法,其中,爬取包括跟踪选自下列各 项中的至少一项的页面或应用的种子列表URL列表、应用指针列 表或者RSS订阅。
7、 如权利要求1所述的方法,其中,编制索引包括遍历所述被 实例化的文档或应用的对象模型中的对象树。
8、 如权利要求1所述的方法,其中,编制索引包括遍历所述被 实例化的文档或应用的对象模型中的对象树并且记录所述对象的位 置和内容。
9、 如权利要求l所述的方法,其中,编制索引包括 加载所述文档或者应用; 实例化所述文档或者应用;遍历所述被实例化的文档或应用的对象模型中的对象树。
10、 如权利要求l所述的方法,其中,编制索引包括到达所述正 运行的、被实例化的文档或应用的对象模型中的任意节点并且将所述 节点记录在数据库中。
11、 如权利要求l所述的方法,其中,编制索引包括到达所述正 运行的、被实例化的文档或应用的对象模型中的任意节点并且将指向 所述节点的指针存储在数据库中。
12、 如权利要求l所述的方法,其中,编制索引包括将与媒体有 关的多个通用资源定位符(URL)存储在数据库中。
13、 如权利要求l所述的方法,其中,编制索引包括遍历所述被 实例化的文档或应用的对象模型中的对象树并模拟鼠标、键盘或其他 用户事件。
14、 如权利要求13所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历所述对象树。
15、 如权利要求13所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历作为所述事件的结果而被显示的新的应用或文 档的对象树。
16、 如权利要求l所述的方法,其中,所述对象是所述被实例化 的文档或应用的对象模型的任何节点或元素。
17、 如权利要求l所述的方法,其中,被爬取的所述文档或应用 包括下列各项中的至少一项字处理文件、Acrobat文件、电子数据 表、浏览器应用、媒体播放器、多媒体应用或者嵌入在媒体流中的元 数据报头。
18、 如权利要求l所述的方法,其中,被爬取的所述文档或应用 包括操作系统。
19、 如权利要求l所述的方法,其中,被爬取的所述文档或应用 包括文件系统。
20、 如权利要求l所述的方法,其中,爬取包括爬取下列类型的 网络内联网、单机或者单机上的多个应用。
21、 如权利要求l所述的方法,其中,爬取包括爬取因特网。
22、 如权利要求1所述的方法,其中,爬取包括爬取TCP/IP网 络上的任何设备。
23、 如权利要求l所述的方法,其中,爬取包括爬取公用网络上 的任何设备。
24、 如权利要求l所述的方法,其中,爬取包括爬取专用网络上 的任何设备。
25、 如权利要求l所述的方法,其中,所述应用或者文档被完全 实例化。
26、 如权利要求l所述的方法,其中,所述应用或者文档的仅仅 一部分被实例化。
27、 如权利要求l所述的方法,其中,编制索引还实例化视频文件。
28、 如权利要求1所述的方法,其中,编制索引还实例化视频流。
29、 如权利要求1所述的方法,还包括将数据査询接口添加到所 述正运行的被实例化的文档或应用中的软件对象,以便能够连接应用 爬取器。
30、 如权利要求1所述的方法,还包括降低安全控制以允许访问 所述对象模型。
31、 一种计算机实现的方法,用于在计算机网络上搜索视频文件, 所述方法包括对多个运行的、被实例化的文档或应用的对象模型进行爬取并为 其编制索引,以定位视频文件。
32、 如权利要求31所述的方法,其中,爬取包括逐个走过各个 机器,以便遍历每台机器上的至少--个文档或应用。
33、 如权利要求32所述的方法,其中,各台机器位于不同的物 理位置并被连接到计算机网络。
34、 如权利要求31所述的方法,其中,爬取包括 跟踪可点击项目的树;以自动方式来激活项目,所述自动方式与人用户的方式基本相同。
35、 如权利要求31所述的方法,其中,爬取包括跟踪页面或应 用的种子列表。
36、 如权利要求31所述的方法,其中,爬取包括跟踪选自下列 各项中的至少一项的页面或应用的种子列表URL列表、应用指针 列表或者RSS订阅。
37、 如权利要求31所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树。
38、 如权利要求31所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树并且记录所述对象的 位置和内容。
39、 如权利要求31所述的方法,其中,编制索引包括 加载所述文档或者应用; 实例化所述文档或者应用;遍历所述被实例化的文档或应用的对象模型中的对象树。
40、 如权利要求31所述的方法,其中,编制索引包括到达所述 正运行的、被实例化的文档或应用的对象模型中的任意节点并且将所 述节点记录在数据库中。
41、 如权利要求31所述的方法,其中,编制索引包括到达所述 正运行的、被实例化的文档或应用的对象模型中的任意节点并且将指 向所述节点的指针存储在数据库中。
42、 如权利要求31所述的方法,其中,编制索引包括将与媒体有关的多个通用资源定位符(URL)存储在数据库中。
43、 如权利要求31所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树并模拟鼠标、键盘或其 他用户事件。
44、 如权利要求43所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历所述对象树。
45、 如权利要求43所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历作为所述事件的结果而被显示的新的应用或文 档的对象树。
46、 如权利要求31所述的方法,其中,所述对象是所述被实例 化的文档或应用的对象模型中的任何节点或元素。
47、 如权利要求31所述的方法,其中,被爬取的所述文档或应 用包括下列各项中的至少一项字处理文件、Acrobat文件、电子数 据表、浏览器应用、媒体播放器、多媒体应用或者嵌入在媒体流中的 元数据报头。
48、 如权利要求31所述的方法,其中,被爬取的所述文档或应 用包括操作系统。
49、 如权利要求31所述的方法,其中,被爬取的所述文档或应 用包括文件系统。
50、 如权利要求31所述的方法,其中,爬取包括爬取下列类型的网络内联网、单机或者单机上的多个应用。
51、 如权利要求31所述的方法,其中,爬取包括爬取因特网。
52、 如权利要求31所述的方法,其中,爬取包括爬取TCP/IP网 络上的任何设备。
53、 如权利要求31所述的方法,其中,爬取包括爬取公用网络 上的任何设备。
54、 如权利要求31所述的方法,其中,爬取包括爬取专用网络 上的任何设备。
55、 如权利要求31所述的方法,其中,所述应用或者文档被完 全实例化。
56、 如权利要求31所述的方法,其中,所述应用或者文档的仅 仅一部分被实例化。
57、 如权利要求31所述的方法,其中,编制索引还实例化视频 文件。
58、 如权利要求31所述的方法,其中,编制索引还实例化视频流。
59、 如权利要求31所述的方法,还包括将数据査询接口添加到 所述正运行的被实例化的文档或应用中的软件对象,以便连接应用爬 取器。
60、 如权利要求31所述的方法,还包括降低安全控制以允许访问所述对象模型。
61、 一种计算机实现的用于创建可搜索数据库的方法,所述方法 包括对多个运行的、被实例化的文档或应用的对象模型进行爬取以定 位视频文件。通过将指向视频文件的指针存储在所述数据库中,来对在所述对 象模型中找到的所述视频文件编制索引;以及从所述对象模型中提取关于所述视频文件的元数据,并将所述元 数据保存在所述数据库中。
62、 一种计算机实现的用于在因特网上搜索文件的方法,所述方 法包括提供协议爬取器,以用于识别富视频的web站点;以及 提供应用爬取器,所述应用爬取器包括査看器,其用于动态地实例化和组装所述富视频的web站点 之一的网页的所有组件,以创建至少一个被实例化的web应用;提取器,其用于识别包括有用信息的所述被实例化的web应 用的特定部分并提供提取该信息到元数据记录所需要的逻辑;以及爬取器,其用于分析所述被实例化的web应用、査找并分析 所述应用中的所有可点击项目、通过插入事件来驱动所述web应用、 以及从所述应用中提取信息并将其写入到文件或数据库中。
63、 如权利要求62所述的方法,其中,所述査看器包括用于下 列各项中至少一项的软件组件的代码-文档对象模型(DOM)工具,其用于一个或多个浏览器; 脚本引擎,其能够执行JavaScript、 JScript、 ECMAScript或者 VBScript;XML解析引擎;层叠式样式表引擎;网络I/0库;HTML解析和渲染引擎;用于执行诸如ActiveX控件之类的嵌入式控件的引擎;或者 用于渲染web应用的引擎。
64、 如权利要求62所述的方法,其中,所述提取器包括下列各 项中至少一项的软件组件的代码XSL引擎;XPath工具;正则表达式引擎; 脚本执行引擎;用于组件的嵌入式对象査看器,所述组件例如是ActiveX和COM 对象,但不仅限于此;网络传输代理,例如http代理; rtsp或其他多媒体流代理;软件桥,其结合外部编程框架的类库来处理数据;分类引擎,其用于对元数据进行分类;或者 文本解析和处理引擎。
65、 如权利要求62所述的方法,其中,所述爬取器包括下列各 项中至少一项的软件组件的代码文件I/0库; 网络I/0库;或者用于生成和存储日志文件的库。
66、 一种计算机实现的用于在因特网上搜索文件的方法,所述方法包括査找目标URL;下载所述目标URL的HTML文件;基于所述HTML中的信息,下载用于构建完整web应用的补充数据文件;根据所述补充数据文件和所述HTML文件来组装应用组件; 实例化应用组件以创建web应用;将数据査询接口应用到可能包括有用数据的所述web应用中的 所有对象;加载预定义的应用模板或者生成并自动定义应用模板; 将所述应用模板应用到从所述web应用提取所有需要的信息的 过程中;将所需要的信息作为结构化数据信息记录存储到文件或数据库中;检査所述web应用中的所有组件以识别可以响应鼠标事件或形 成可点击项目的所有可能组件;确定自上一次模拟鼠标事件后已经出现了哪些可点击项目;将新的可点击项目存储在适当的数据结构中,例如包括在所有可 能应用状态下的所述应用中的所有可点击项目的树的新的分支以及模拟鼠标点击所述可点击项目树的当前分支中的第一个可点击 项目。
67、 如权利要求66所述的方法,还包括重复该方法,直到已经 遍历了整个可点击项目树为止。
68、 如权利要求66所述的方法,其中,实例化步骤包括下列各 项中的至少一项渲染HTML并且构造所述文档对象模型; 应用样式表;执行适当的脚本解释器中的脚本;激活任意控件或者插件,例如ActiveX控件;启动视频流或音频流;启动动画,例如Flash动画;或者执行HTML行为脚本。
69、 一种计算机系统,包括具有编程代码的应用爬取器,以用于从web站点爬取正运行的、 被实例化的文档或应用的对象模型并为其编制索引。
70、 如权利要求69所述的计算机系统,还包括 协议爬取器,用于识别所检查的web站点,其中,所述应用爬取器从所述web站点爬取正运行的、被实例化的文档或应用的所述 对象模型并为其编制索引。
71、 如权利要求69所述的计算机系统,其中,所述应用爬取器 包括查看器,其用于动态地实例化和组装所述web站点之-的网页 的所有组件,以创建至少一个被实例化的web应用。
72、 如权利要求69所述的计算机系统,其中,所述应用爬取器 包括提取器,其用于识别包括有用信息的所述被实例化的web应用 的特定部分并提供提取该信息到元数据记录所需要的逻辑。
73、 如权利要求69所述的计算机系统,其中所述应用爬取器包括爬取器,其用于分析所述被实例化的web应用、査找并分析所 述应用中的所有可点击项目、通过插入事件来驱动所述web应用、 以及从所述应用中提取信息并将其写入到文件或数据库中。
74、 如权利要求69所述的计算机系统,其中,所述协议爬取器 识别所检査的包括至少一个视频文件的web站点。
75、 如权利要求69所述的计算机系统,其中,所述协议爬取器识别所检査的包括至少一个媒体文件的web站点。
76、 如权利要求69所述的计算机系统,其中,所述协议爬取器 识别所检査的包括下列各项中至少一项的web站点mpeg文件、avi 文件、RM文件、flash文件、,ts文件、.wmv文件或QuicktimeTM文 件。
77、 如权利要求69所述的计算机系统,其中,所述应用爬取器 査看可点击项目树并以自动方式激活每一个项目,所述自动方式与人 用户的方式基本相同。
78、 如权利要求69所述的计算机系统,其中,所述应用爬取器 使用模板以用于下列各项中的至少一项数据提取、跟踪链接的定时、 爬取的深度、如何跳过商业广告、从何处开始爬取、査找链接、标题 定位、媒体文件元数据定位、时间同步或者指示爬取器等待特定的事 件间隔,然后再次爬取对象树。
79、 一种系统,包括协议爬取器,用于识别富视频的web站点;以及 应用爬取器,所述应用爬取器包括査看器,其用于动态地实例化和组装所述富视频的web站点 之一的网页的所有组件,以创建至少一个被实例化的web应用;提取器,其用于识别包括有用信息的所述被实例化的web应 用的特定部分并提供提取该信息到元数据记录所需要的逻辑;以及爬取器,其用于分析所述被实例化的web应用、査找并分析 所述应用中的所有可点击项目、通过插入事件来驱动所述web应用、 以及从所述应用中提取信息并将其写入到文件或数据库中。
80、 如权利要求79所述的计算机系统,其中,所述查看器包括 下列各项中至少一项的软件组件的代码-文档对象模型(DOM)工具,其用于一个或多个浏览器; 脚本引擎,其能够执行JavaScript、 JScript、 ECMAScript或者 VBScript;XML解析引擎;层叠式样式表引擎; 网络I/0库;HTML解析和渲染引擎;用于执行诸如ActiveX控件之类的嵌入式控件的引擎;或者 用于渲染web应用的引擎。
81、 如权利要求79所述的计算机系统,其中,所述提取器包括 下列各项中至少一项的软件组件的代码XSL引擎;XPath工具;正则表达式引擎;脚本执行引擎;用于组件的嵌入式对象査看器,所述组件例如是ActiveX和COM 对象,但不仅限于此;网络传输代理,例如http代理; rtsp或其他多媒体流代理;软件桥,其结合外部编程框架的类库来处理数据;分类引擎,其用于对元数据进行分类;或者 文本解析和处理引擎。
82、 如权利要求79所述的计算机系统,其中,所述爬取器包括 下列各项中至少一项的软件组件的代码文件I/0库网络I/0库;或者用于生成和存储日志文件的库。
83、 一种计算机实现的方法,包括 接收目标URL;以及编制多个正运行的、被实例化的文档或应用的对象模型的索引。
84、 如权利要求83所述的方法,其中,所述接收步骤包括接收 URL列表。
85、 如权利要求83所述的方法,其中,所述接收步骤包括接收 下列各项中的至少一项URL列表、应用指针列表或者RSS订阅。
86、 如权利要求83所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树。
87、 如权利要求83所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树并且记录所述对象的 位置和内容。
88、 如权利要求83所述的方法,其中,编制索引包括 加载所述文档或者应用; 实例化所述文档或者应用;遍历所述被实例化的文档或应用的对象模型中的对象树。
89、 如权利要求83所述的方法,其中,编制索引包括到达所述 正运行的、被实例化的文档或应用的对象模型中的任意节点并且将所 述节点记录在数据库中。
90、 如权利要求83所述的方法,其中,编制索引包括到达所述 正运行的、被实例化的文档或应用的对象模型中的任意节点并且将指 向所述节点的指针存储在数据库中。
91、 如权利要求83所述的方法,其中,编制索引包括将与媒体 有关的多个通用资源定位符(URL)存储在数据库中。
92、 如权利要求83所述的方法,其中,编制索引包括遍历所述 被实例化的文档或应用的对象模型中的对象树并模拟鼠标、键盘或其 他用户事件。
93、 如权利要求92所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历所述对象树。
94、 如权利要求92所述的方法,还包括在所述鼠标事件、键盘 事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限定 的时间段,然后再遍历作为所述事件的结果而被显示的新的应用或文 档的对象树。
95、 如权利要求83所述的方法,其中,所述对象是所述被实例 化的文档或应用的对象模型的任何节点或元素。
96、 如权利要求83所述的方法,其中,被索引的所述文档或应 用包括下列各项中的至少一项字处理文件、Acrobat文件、电子数 据表、浏览器应用、媒体播放器、多媒体应用或者嵌入在媒体流中的 元数据报头。
97、 如权利要求83所述的方法,其中,所述应用或者文档被完 全实例化。
98、 如权利要求83所述的方法,其中,所述应用或者文档的仅 仅一部分被实例化。
99、 如权利要求83所述的方法,其中,编制索引还实例化视频 文件。
100、 如权利要求83所述的方法,其中,编制索引还实例化视频流。
101、 如权利要求83所述的方法,还包括将数据查询接口添加到 所述正运行的被实例化的文档或应用中的软件对象,以便能够连接应 用爬取器。
102、 如权利要求83所述的方法,还包括降低安全控制以允许访 问所述对象模型。
103、 一种计算机程序产品,包括-计算机可用介质和包括在所述计算机可用介质上的计算机可读 代码,所述计算机可读代码包括计算机可读程序代码,其使计算机实现对正运行的被实例化的文 档或应用的对象模型进行爬取并为其编制索引。
104、 如权利要求103所述的产品,其中,爬取包括逐个走过各 个机器,以便遍历每台机器上的至少一个文档或应用。
105、 如权利要求104所述的产品,其中,各台机器位于不同的 物理位置并被连接到计算机网络。
106、 如权利要求103所述的产品,其中,爬取包括 跟踪可点击项目的树;以自动方式来激活项目,所述自动方式与人用户的方式基本相同。
107、 如权利要求103所述的产品,其中,爬取包括跟踪页面或 应用的种子列表。
108、 如权利要求103所述的产品,其中,爬取包括跟踪选自下 列各项中的至少一项的页面或应用的种子列表URL列表、应用指 针列表或者RSS订阅。
109、 如权利要求103所述的产品,其中,编制索引包括遍历所 述被实例化的文档或应用的对象模型中的对象树。
110、 如权利要求103所述的产品,其中,编制索引包括遍历所 述被实例化的文档或应用的对象模型中的对象树并且记录所述对象 的位置和内容。
111、 如权利要求103所述的产品,其中,编制索引包括 加载所述文档或者应用; 实例化所述文档或者应用;遍历所述被实例化的文档或应用的对象模型中的对象树。
112、 如权利要求103所述的产品,其中,编制索引包括到达所 述正运行的、被实例化的文档或应用的对象模型中的任意节点并且将 所述节点记录在数据库中。
113、 如权利要求103所述的产品,其中,编制索引包括到达所 述正运行的、被实例化的文档或应用的对象模型中的任意节点并且将 指向所述节点的指针存储在数据库中。
114、 如权利要求103所述的产品,其中,编制索引包括将与媒 体有关的多个通用资源定位符(URL)存储在数据库中。
115、 如权利要求103所述的产品,其中,编制索引包括遍历所 述被实例化的文档或应用的对象模型中的对象树并模拟鼠标、键盘或 其他用户事件。
116、 如权利要求115所述的产品,还包括在所述鼠标事件、键 盘事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限 定的时间段,然后再遍历所述对象树。
117、 如权利要求115所述的产品,还包括在所述鼠标事件、键 盘事件、其他用户事件、浏览器事件或媒体播放器事件后等待一个限 定的时间段,然后再遍历作为所述事件的结果而被显示的新的应用或 文档的对象树。
118、 如权利要求103所述的产品,其中,所述对象是所述被实 例化的文档或应用的对象模型的任何节点或元素。
119、 如权利要求103所述的产品,其中,被爬取的所述文档或 应用包括下列各项中的至少一项字处理文件、Acrobat文件、电子 数据表、浏览器应用、媒体播放器、多媒体应用或者嵌入在媒体流中 的元数据报头。
120、 如权利要求103所述的产品,其中,被爬取的所述文档或 应用包括操作系统。
121、 如权利要求103所述的产品,其中,被爬取的所述文档或 应用包括文件系统。
122、 如权利要求103所述的产品,其中,爬取包括爬取下列类 型的网络内联网、单机或者单机上的多个应用。
123、 如权利要求103所述的产品,其中,爬取包括爬取因特网。
124、 如权利要求103所述的产品,其中,爬取包括爬取TCP/IP 网络上的任何设备。
125、 如权利要求103所述的产品,其中,爬取包括爬取公用网 络上的任何设备。
126、 如权利要求103所述的产品,其中,爬取包括爬取专用网 络上的任何设备。
127、 如权利要求103所述的产品,其中,所述应用或者文档被 完全实例化。
128、 如权利要求103所述的产品,其中,所述应用或者文档的 仅仅一部分被实例化。
129、 如权利要求103所述的产品,其中,编制索引还实例化视 频文件。
130、 如权利要求103所述的产品,其中,编制索引还实例化视 频流。
131、 如权利要求103所述的产品,还包括将数据查询接口添加 到所述正运行的被实例化的文档或应用中的软件对象,以便能够连接 应用爬取器。
132、 如权利要求103所述的产品,还包括降低安全控制以允许 访问所述对象模型。
全文摘要
提供了一种计算机实现的方法以用于搜索因特网上的文件。在一个实施例中,该方法可以提供应用爬取器,其组装并动态地实例化网页的所有组件。然后,对该实例化的web应用进行分析以定位网页上的期望组件。这可以包括查找并分析应用中的所有可点击项目,通过插入事件来驱动web应用,以及从该应用中提取信息并将该信息写入文件或数据库。
文档编号G06F15/76GK101443751SQ200580047029
公开日2009年5月27日 申请日期2005年11月22日 优先权日2004年11月22日
发明者A·贝格兰, P·科克斯, T·D·塔特尔 申请人:特鲁维奥公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1