專利名稱:用于應(yīng)用爬取器的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本技術(shù)領(lǐng)域涉及搜索引擎,并且更具體地涉及能夠搜索視頻文件
且被設(shè)計為從現(xiàn)代網(wǎng)頁和web應(yīng)用中提取詳細信息的搜索引擎。本 發(fā)明的應(yīng)用爬取器與標準web爬取器在許多方面有顯著的不同。
背景技術(shù):
標準web爬取器(crawler)最初為網(wǎng)頁而設(shè)計,其中大量關(guān)于網(wǎng) 頁的有用信息包括在HTML文本文件T中。圖1A示出了將現(xiàn)有的 標準web爬取器應(yīng)用到當前網(wǎng)頁時的不足。在現(xiàn)有的網(wǎng)頁中,在多 種不同的文件中包括關(guān)于網(wǎng)頁的有用信息越來越普遍,這些信息在瀏 覽器中被組合以創(chuàng)建完整的應(yīng)用?,F(xiàn)代web應(yīng)用中所使用的一般文 件包括
*多個HTML文件和框架集
*圖像文件,例如GIF或JPEG
* Javascript、 Jscript和VBScript文件
* XML數(shù)據(jù)文件
* ActiveX控件或者瀏覽器插件 *視頻和音頻流
參Flash動畫
* HTML行為
*嵌入式媒體播放器
在當前的現(xiàn)代web應(yīng)用中,對于單個網(wǎng)頁而言,根據(jù)所有這些 技術(shù)來創(chuàng)建網(wǎng)頁是很平常的。因此,今天的網(wǎng)頁不再是簡單的靜態(tài)文 檔。在許多情況下,他們是多功能性的動態(tài)應(yīng)用,這些功能性動態(tài)應(yīng) 用保持復(fù)雜的狀態(tài)并且執(zhí)行縝密的動作以響應(yīng)用戶的輸入或其他瀏覽器或定時器事件。
因此,需要一種被專門設(shè)計成能夠理解這些現(xiàn)代web應(yīng)用中的 有用信息并能夠從這些現(xiàn)代web應(yīng)用中提取有用信息的應(yīng)用程序。 因此,其能力遠遠超越傳統(tǒng)web爬取器的能力,這種傳統(tǒng)web爬取 器一般只能理解諸如HTML、 PDF之類的靜態(tài)文件類型。
發(fā)明內(nèi)容
本發(fā)明為以上論述的至少一些缺陷提供了解決方案。具體地,本 發(fā)明的一些實施例提供了一種爬取器,其不僅解析HTML文件中的 文本,而且檢查指示存在視頻文件的鏈接的內(nèi)容。本發(fā)明提供了一種 改進的爬取器,其可以更加徹底地在因特阿上搜索文件,例如視頻文 件、媒體文件、多媒體流服務(wù)和/或非靜態(tài)文件類型,但不僅限于此。 本發(fā)明還提供了一種改進的爬取器,其能夠在因特網(wǎng)上搜索特定的信 息段,例如文本串、圖像、文檔對象模型的節(jié)點和/或一般包括在現(xiàn) 代web應(yīng)用中的其他種類的數(shù)據(jù)對象,但不僅限于此。與現(xiàn)有的因 特網(wǎng)爬取器相比,本發(fā)明可以從網(wǎng)頁中提取更加詳細的信息。此處所 述的這些和其他目的中的至少一些將由本發(fā)明的實施例來實現(xiàn)。
在一個方案中,本發(fā)明提供了一種在文檔或應(yīng)用的對象空間或?qū)?象模型中(特別是在因特網(wǎng)上)爬取(crawl)對象的方法。特別地, 本發(fā)明爬取萬維網(wǎng)(WWW)中的對象模型。當在web上執(zhí)行文件或 頁面時,可以將本發(fā)明的爬取器應(yīng)用于功能性應(yīng)用或者實例化的應(yīng) 用,而不僅僅是非實例化的應(yīng)用和/或靜態(tài)文檔。這個索引出現(xiàn)在單 個web應(yīng)用內(nèi)和遍布因特網(wǎng)的多個web站點上。這可以涉及檢查對 象模型,并且在許多機器、網(wǎng)絡(luò)或者站點上進行該檢查。在一個實施 例中,對象空間的爬取或者索引出現(xiàn)在應(yīng)用和/或網(wǎng)絡(luò)的分布式集合 上。在過去,不需要這么做,因為先前web文檔的頁面一般是單一 的和靜態(tài)的,并且不需要被實例化來完全探知其中的內(nèi)容。而現(xiàn)在的 應(yīng)用和文檔己經(jīng)變得十分復(fù)雜,從而期望爬取對象空間以尋找所有可 用的內(nèi)容。另外,以前,通過現(xiàn)有技術(shù)不容易訪問到這些對象,并由 此沒有將爬取器設(shè)計成爬取對象空間。在本發(fā)明的一個實施例中, 一旦文檔被實例化,就發(fā)生對對象空 間的爬取。換言之,本發(fā)明爬取功能性應(yīng)用。這使得爬取器能夠在應(yīng) 用或網(wǎng)頁被實例化后就尋找被加載的另外的對象或者元素。在不進行 實例化的情況下,許多內(nèi)容可能是不可見的。就能夠被找到的內(nèi)容而 言,讀取的靜態(tài)文件和已經(jīng)在運行的應(yīng)用中被實例化的文件之間存在 差異。
在本發(fā)明的一個實施例中,提供索引器,其可以到達并檢査任何 電子形式的文檔或應(yīng)用媒體文件并編制其內(nèi)容的索引。其通過到達該 應(yīng)用的任何節(jié)點或者元素并將其記錄在數(shù)據(jù)庫中或者讓指針指向它 來實現(xiàn)。該方法適用于實例化的應(yīng)用的對象模型(段或?qū)ο?的任何 節(jié)點和元素。
更具體地,在一個實施例中,可以將本發(fā)明的應(yīng)用爬取器配置為
加載、組裝和實例化全部web應(yīng)用。如圖1B所示,當今的網(wǎng)頁載有 多種組件,例如可以同時運行的腳本和嵌入式控件,但不僅限于此。 在該圖的上部,具有使用動態(tài)HTML的頁,傳統(tǒng)的爬取器沒有被設(shè) 計用于這種使用動態(tài)HTML的頁。本發(fā)明可以提供能夠加載和實例 化所有這些組件的爬取器。在該應(yīng)用的實例化實例中,其尋找軟件對 象,該軟件對象可以指示例如(但不限于)視頻內(nèi)容等內(nèi)容。爬取器 將模擬在網(wǎng)頁上按下按鈕或者點擊鏈接并將利用這種方法搜集的信 息存儲到文件或數(shù)據(jù)庫中。
在本發(fā)明的另一個實施例中,提供了一種用于應(yīng)用爬取器的方 法。1)在一個方案中,應(yīng)用爬取器可以加載共同創(chuàng)建web文檔(不 僅僅是HTML文檔)的所有組件。作為實例而非限制,其包括多個 HTML文檔、多個腳本、嵌入式軟件、加載到背景中的樣式表、html 行為(單獨腳本)、XML文件和/或所有為網(wǎng)頁加載的各種文件。2) 在另一個方案中,應(yīng)用爬取器可以被設(shè)計為將網(wǎng)頁的多個組件組裝成 一個并被實例化,因此其被看作一個應(yīng)用,這與文本文檔不同。3) 在又一個方案中,該應(yīng)用爬取器可以得到該對象表示,然后取出與文 件(例如但不限于視頻文件)有關(guān)或與顯示給用戶的信息有關(guān)的元數(shù) 據(jù)的特定段。也就是說,對象空間中可用的元數(shù)據(jù)可以不與"文件"有關(guān),而是與任何正在顯示的信息有關(guān)。還需要考慮的時間線。相關(guān)
的元數(shù)據(jù)可以與當前正顯示的信息有關(guān),這或者是作為web應(yīng)用所 確定的預(yù)定時間線的結(jié)果(在Flash動畫中常見)或者作為具體用戶 動作的結(jié)果(例如出現(xiàn)彈出窗口是用戶點擊的結(jié)果)。在一個實施例 中,該應(yīng)用可以到達視頻流或視頻播放器并且拽取出相關(guān)的數(shù)據(jù)。本 發(fā)明可以考慮由視頻流激發(fā)的事件并通過這種方式獲得信息。
在本發(fā)明的另一個實施例中,可以使用RSS訂閱(RSSfeed)來 將目標URL提供給爬取器,以用于檢査。在該實施例中,爬取器可 以檢査整個對象空間和對應(yīng)于所提供URL的實例化web應(yīng)用的對象 模型。爬取器可以從媒體播放器或者web應(yīng)用中的其他地方提取元 數(shù)據(jù)。這樣,在該實施例中,爬取是經(jīng)由RSS指針到頁。該爬取器 由RSS訂閱指引,該RSS訂閱提供一個具有http鏈接的URL。這樣, 爬取可以包括1)爬取可點擊項目的樹并且以用戶可能的方式(但 是是以等同或類似于人的方式的自動方式)將他們激活和/或2)經(jīng)由 頁或應(yīng)用的種子列表進行爬取(例如URL列表、應(yīng)用指針列表或者 來自RSS訂閱的列表)。
在本發(fā)明的另一個實施例中,應(yīng)用爬取器可以使用以下三種模板 中的任意一種1)—種用于站點自身的模板(定時、商業(yè)等,在哪 開始搜索),2)鏈接探測器(尋找鏈接),和/或3)用于數(shù)據(jù)提取的 模板(標題、導(dǎo)演、作者等的位置)。例如,爬取和索引可以基于暫 時事件(其他事件出現(xiàn)時同時出現(xiàn)的變化的暫時同步)、空間關(guān)系(可 視空間關(guān)系)或其他觸發(fā)器而出現(xiàn)。使用第一種模板,爬取器模擬終 端用戶的活動,例如點擊網(wǎng)頁上的按鈕。定時事件(例如在30秒后 看一個對象)也可以是一個受控的模板并且允許爬取器更徹底地探查 網(wǎng)頁。所述模板可以指示爬取器等待一定的時間間隔,然后再次搜索 對象樹??刂贫〞r的這種模板特別適用于挖掘當今復(fù)雜網(wǎng)頁中的內(nèi) 容。
模板還可以用于從實例化的應(yīng)用中提取特定的信息段。爬取器可 以使用模板來識別對象模型的部分或者節(jié)點、文本串、應(yīng)用的對象空 間中的單個對象或者對象集合,和/或包括在應(yīng)用中的頁或文件。作
24為非限制性的實例,本發(fā)明的爬取器可以搜集關(guān)于視頻持續(xù)時間、視 頻分辨率、視頻標題、視頻說明、視頻質(zhì)量、視頻來源和/或其他相 關(guān)信息的信息。搜集的元數(shù)據(jù)被存儲在數(shù)據(jù)庫中。應(yīng)該理解的是,在 一個實施例中,模板可以是指令集和/或編程代碼,其指示爬取器如 何爬取網(wǎng)頁、應(yīng)用等和/或?qū)W(wǎng)頁、應(yīng)用等編制索引。
本發(fā)明還可以包括用于爬取媒體播放器對象的應(yīng)用爬取器。遍歷 對象樹使用非常簡單的應(yīng)用爬取器。爬取器可以知道將進行視頻播
放。這種簡化的爬取器可以驗證URL以確保數(shù)據(jù)完整性并且還可以 定位視頻文件。這種簡化的爬取器對富動態(tài)內(nèi)容(例如,廣告等)的 一些網(wǎng)頁是有用的,加載所有文件可能是負擔(dān)。
在本發(fā)明的一個實施例中,提出了一種計算機實現(xiàn)的方法,其包 括對多個運行的被實例化的文檔或應(yīng)用的對象模型進行爬取和編制 索引。該方法可以包括爬取,其包括逐個訪問各個機器,以便遍歷每 臺機器上的至少一個文檔或應(yīng)用。這些機器可以位于不同的物理位 置,并且耦合到計算機網(wǎng)絡(luò)上。爬取還可以包括以與人工用戶的方式 基本類似的自動方式跟蹤可點擊項目樹并激活這些項目。
本方法可以包括跟蹤頁或應(yīng)用的種子列表。本方法包括跟蹤選自 下列列表中的至少一個的頁或應(yīng)用的種子列表URL列表、應(yīng)用指 針或RSS訂閱。該方法可以包括遍歷被實例化的文檔或應(yīng)用的對象 方法中的對象樹。該方法可以包括遍歷被實例化的文檔或應(yīng)用的對象 模型中的對象樹并記錄對象位置和內(nèi)容。本方法可以包括加載文檔或 應(yīng)用;實例化文檔或應(yīng)用;遍歷實例化文檔或應(yīng)用的對象模型中的對 象樹。本方法可以包括到達正運行的被實例化的文檔或應(yīng)用的對象模 型中的任何節(jié)點并將該節(jié)點記錄在數(shù)據(jù)庫中。在另一個實施例中,本 方法可以包括到達正運行的被實例化的文檔或應(yīng)用的對象模型中的 任何節(jié)點并將該節(jié)點的指針存儲在數(shù)據(jù)庫中。在另一個實施例中,本 方法可以包括將與媒體有關(guān)的多個通用資源定位符(URL)存儲在數(shù) 據(jù)庫中。
本方法可以包括遍歷被實例化的文檔或應(yīng)用的對象模型中的對 象樹并模擬鼠標、鍵盤或其他用戶事件。本方法可以包括在鼠標事件、鍵盤事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個 限定的時間段,然后遍歷對象樹。本方法可以包括在鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后遍歷作為事件結(jié)果而被顯示的新的應(yīng)用或文檔的對象 樹。所述對象可以是被實例化的文檔或應(yīng)用的對象模型的任何節(jié)點或 元素。正被爬取的文檔或應(yīng)用可以包括下列各項中的至少一項字處
理文件、Acrobat文件、電子數(shù)據(jù)表、瀏覽器應(yīng)用、媒體播放器、多 媒體應(yīng)用或者嵌入在媒體流中的元數(shù)據(jù)報頭。正被爬取的文檔或應(yīng)用 可以包括操作系統(tǒng)。正被爬取的文檔或應(yīng)用可以包括文件系統(tǒng)。
本方法可以包括爬取下列類型的網(wǎng)絡(luò)內(nèi)聯(lián)網(wǎng)、單機或者單機上 的多個應(yīng)用。本方法可以包括爬取因特網(wǎng)。本發(fā)明可以包括爬取 TCP/IP網(wǎng)絡(luò)上的任何設(shè)備。本方法可以包括爬取公用網(wǎng)絡(luò)上的任何 設(shè)備。本方法可以包括爬取專用網(wǎng)絡(luò)上的任何設(shè)備。本方法可以包括 被完全實例化的應(yīng)用或文檔。在本發(fā)明的一些實施例中,僅實例化應(yīng) 用或文檔的一部分。本方法可以包括實例化視頻文件。本方法可以包 括實例化視頻流。本方法可以包括將數(shù)據(jù)查詢接口添加到正運行的被 實例化的文檔或應(yīng)用中的軟件對象,以便與應(yīng)用爬取器連接。本方法 可以包括降低安全控制以允許訪問對象模型。
在本發(fā)明的另一實施例中,提出了一種計算機實現(xiàn)的方法,以便 通過計算機網(wǎng)絡(luò)搜索視頻文件。本方法包括爬取和索引多個正運行的 被實例化的文檔或應(yīng)用的對象模型以定位視頻文件。
在本發(fā)明的另一實施例中,提出了一種計算機實現(xiàn)的方法,以便 創(chuàng)建可搜索的數(shù)據(jù)庫。本方法包括爬取多個正運行的被實例化的文檔 或應(yīng)用的對象模型以定位視頻文件;通過將指向視頻文件的指針保存 在數(shù)據(jù)庫中來為在對象模型中找到的視頻文件編制索引;以及從對象 模型中提取關(guān)于視頻文件的元數(shù)據(jù)并將該元數(shù)據(jù)保存在數(shù)據(jù)庫中。
在本發(fā)明的另一實施例中,提出了一種通過因特網(wǎng)搜索文件的計 算機實現(xiàn)的方法,包括提供一個協(xié)議爬取器以便識別富視頻的web 站點;以及提供應(yīng)用爬取器。該應(yīng)用爬取器可以包括査看器,其用于 動態(tài)實例化和組合所述富視頻web站點之一的網(wǎng)頁的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用。應(yīng)用爬取器可以還包括提取器, 其用于識別包括有用信息的被實例化web應(yīng)用的特定部分并提供提 取該信息到元數(shù)據(jù)記錄所需要的邏輯;以及爬取器,其用于分析被實 例化的web應(yīng)用、査找并分析該應(yīng)用中的所有可點擊項目、通過插 入事件來驅(qū)動web應(yīng)用、以及從應(yīng)用中提取信息并將其寫入文件或 數(shù)據(jù)庫。
在一個實施例中,查看器可以包括用于下列各項中至少一項的軟 件組件的代碼文檔對象模型(DOM)工具,其用于一個或多個瀏 覽器;腳本引擎,其能夠執(zhí)行JavaScript、 JScript、 ECMAScript或者 VBScript; XML解析引擎;層疊樣式表引擎;網(wǎng)絡(luò)I/O庫;HTML 解析和渲染引擎;用于執(zhí)行諸如ActiveX控件等嵌入式控件的引擎; 以及用于渲染web應(yīng)用的引擎。
在一個實施例中,提取器可以包括用于下列各項中至少一項的軟 件組件的代碼XSL引擎;XPath工具;正則表達式引擎;腳本執(zhí)行 引擎;用于組件的嵌入式對象査看器,組件例如是ActiveX和COM 對象,但不僅限于此;網(wǎng)絡(luò)傳輸代理,例如http代理;rtsp或其他多 媒體流代理;軟件橋,其與外部程序框架的類庫一起處理數(shù)據(jù);分類 引擎,其用于對元數(shù)據(jù)分類;或者文本解析和處理引擎。
在一個實施例中,爬取器可以包括用于下列各項中至少一項的軟 件組件的代碼文件I/0庫;網(wǎng)絡(luò)I/0庫;或者用于生成和存儲曰志 文件的庫。
在本發(fā)明的另一個實施例中,提出了一種計算機實現(xiàn)的方法,以 便通過因特網(wǎng)搜索文件。本方法包括查找目標URL;下載目標URL 的HTML文件;基于HTML文件中的信息,下載用于構(gòu)建完整web 應(yīng)用的補充數(shù)據(jù)文件;組裝來自所述補充數(shù)據(jù)文件和HTML文件的 應(yīng)用組件;實例化應(yīng)用組件以創(chuàng)建web應(yīng)用;應(yīng)用數(shù)據(jù)查詢接口到 web應(yīng)用中的所有對象,其中該web應(yīng)用可能包括有用的數(shù)據(jù);加載 預(yù)定義的應(yīng)用模板或者生成并自動定義應(yīng)用模板;運用應(yīng)用模板以從 web應(yīng)用提取所有需要的信息;將所需要的信息作為結(jié)構(gòu)數(shù)據(jù)信息記 錄保存到文件或數(shù)據(jù)庫;檢查web應(yīng)用中的所有組件以識別可以響應(yīng)鼠標事件或形成可點擊項目的所有可能組件;確定自上一次模擬鼠 標事件后己經(jīng)出現(xiàn)了哪些可點擊項目;將新的可點擊項目存儲在適當 的數(shù)據(jù)結(jié)構(gòu)中,例如包括在所有可能應(yīng)用狀態(tài)下的應(yīng)用中的所有可點 擊項目樹的新的分支;以及模擬鼠標點擊可點擊項目樹的當前分支中 的第一個可點擊項目。
本發(fā)明可以包括重復(fù)該方法,直到已經(jīng)遍歷了整個可點擊項目樹 為止。實例化步驟包括下列各項中的至少一項渲染HTML并且構(gòu) 造文檔對象模型;應(yīng)用樣式表;執(zhí)行適當?shù)哪_本解釋器中的腳本;激 活任意控件或者插件,例如ActiveX控件;啟動視頻流或音頻流;啟 動動畫,例如Flash動畫;或者執(zhí)行HTML行為腳本。
在本發(fā)明的另一個實施例中,計算機系統(tǒng)包括具有程序代碼的應(yīng) 用爬取器,該程序代碼用于從web站點爬取正運行的、被實例化的 文檔或應(yīng)用的對象模型并為其編制索引。該系統(tǒng)還可以包括協(xié)議爬取 器,以識別所檢查的web站點,其中所述應(yīng)用爬取器從web站點爬 取正運行的、被實例化的文檔或應(yīng)用的所述對象模型并為其編制索 引。該應(yīng)用爬取器可以包括查看器,其用于動態(tài)實例化和組合web 站點之一的網(wǎng)頁的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用。 應(yīng)用爬取器還可以包括提取器,其用于識別包括有用信息的被實例化 的web應(yīng)用的特定部分并提供提取該信息到元數(shù)據(jù)記錄所需要的邏 輯。另外,應(yīng)用爬取器可以包括爬取器,其用于分析被實例化的web 應(yīng)用、査找并分析該應(yīng)用中的所有可點擊項目、通過插入事件來驅(qū)動 web應(yīng)用、以及從應(yīng)用中提取信息并將其寫入文件或數(shù)據(jù)庫。協(xié)議爬 取器識別用于檢查的web站點,該web站點包括至少一個視頻文件, 至少一個媒體文件,或者下列文件中的至少一個mpeg文件、avi 文件、rm文件、flash文件、a .ts文件、a .wmv文件或Quicktime 文件。應(yīng)用爬取器配置為査看可點擊項目樹并以自動方式激活每一個 項目,這種自動方式基本類似于人工用戶的方式。應(yīng)用爬取器可以使
用模板,其配置為用于下列各項中的至少一項數(shù)據(jù)提取、跟蹤鏈接 的定時、爬取的深度、如何跳過廣告、從何處開始爬取、査找鏈接、 標題的定位、媒體文件元數(shù)據(jù)的定位、時間同步或者指示爬取器等待特定的事件間隔,然后再次爬取對象樹。
在本發(fā)明的另一實施例中,提出了一種計算機系統(tǒng),其包括應(yīng)用
爬取器和用于識別富視頻web站點的協(xié)議爬取器。該應(yīng)用爬取器可 以包括查看器,其用于動態(tài)實例化和組合所述富視頻的web站點之 一的網(wǎng)頁的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用;提取 器,其用于識別包括有用信息的被實例化的web應(yīng)用的特定部分并 提供提取該信息到元數(shù)據(jù)記錄所需要的邏輯;以及爬取器,其用于分 析被實例化的web應(yīng)用、查找并分析該應(yīng)用中的所有可點擊項目、 通過插入事件來驅(qū)動web應(yīng)用、以及從應(yīng)用中提取信息并將其寫入 文件或數(shù)據(jù)庫。
在本發(fā)明的另一實施例中,提出了一種計算機實現(xiàn)的方法,其接 收目標URL以及編制多個正運行的、被實例化的文檔或應(yīng)用的對象 模型的索引。接收步驟可以包括接收URL列表。接收步驟還可以包 括接收下列各項中的至少一項URL列表、應(yīng)用指針列表或者RSS 訂閱。本發(fā)明可以包括遍歷被實例化的文檔或應(yīng)用的對象模型中的對 象樹。
在本發(fā)明的另 一實施例中,計算機程序產(chǎn)品包括計算機可用介質(zhì) 和包括在所述計算機可用介質(zhì)上的計算機可讀代碼。計算機可讀代碼 包括計算機可讀程序代碼,該計算機可讀程序代碼配置為使計算機實 施對正運行的被實例化的文檔或應(yīng)用進行爬取并為其編制索引。
通過參照說明書的余下部分和附圖,對本發(fā)明的本質(zhì)和優(yōu)點的進 一步理解將變得顯而易見。
圖IA示出了現(xiàn)有爬取器的査找結(jié)果;
圖IB示出了本發(fā)明的爬取器所找到的更具體的信息;
圖2是本發(fā)明的一個實施例的示意圖3是查看器的一個實施例的示意圖4是提取器的一個實施例的示意圖5是爬取器的一個實施例的示意29圖6示出了本發(fā)明方法的一個實施例;
圖7示出了本發(fā)明方法的另一個實施例;
圖8是數(shù)據(jù)融合的一個實施例的示意圖; 圖9示出了本發(fā)明方法的另一個實施例。
具體實施例方式
應(yīng)該理解的是,上述總體說明和下列具體說明都僅僅是示例性和 說明性的,而非是對本發(fā)明的限制,如所要求的那樣。應(yīng)該注意如 說明書和所附權(quán)利要求所使用的那樣,單數(shù)形式亦指代復(fù)數(shù)形式,除 非上下文清晰指示不是這樣。因此,例如,"爬取器"可能指代多個 爬取器等。此處所引用的參考文獻通過援引并入本說明書中,除非他 們明顯與說明書中所提出的技術(shù)相矛盾。
作為概述,諸如爬取器等程序?qū)τ嬎銠C網(wǎng)絡(luò)進行預(yù)遍歷以搜索 文檔(例如網(wǎng)頁)并且構(gòu)建大的索引文件或者文檔中所找到的鏈接、 關(guān)鍵詞和/或元數(shù)據(jù)的數(shù)據(jù)庫。當用戶確定一個包括一個或多個搜索 條件的査詢時,用戶將該查詢提交給搜索引擎的另-個程序。作為響 應(yīng),該搜索引擎査看其索引文件并且顯示匹配該搜索査詢的文檔列 表, 一般為超鏈接。然后,用戶一般將激活其中的一個超鏈接以便觀 看文檔中所包括的信息。
如圖1A和圖1B所示,在搜尋諸如(但不限于)媒體文件之類
的文件方面,Truveo應(yīng)用爬取器10對傳統(tǒng)爬取器進行了大量改進。 如圖1B所示,爬取器10可以檢査并操作包括多種組件的復(fù)雜web 應(yīng)用,這些組件例如是視頻流11,背景加載XML數(shù)據(jù)島12,瀏覽 器插件和ActiveX控件13,腳本生成HTML片段14,非錨(non-anchor) "onClick"鏈接15,由腳本執(zhí)行、用戶事件或定時器事件所產(chǎn)生的 表元素、頁元素16,動態(tài)應(yīng)用的樣式表17, HTML行為18等等,但 不僅限于此。爬取器10可以檢查并操作web應(yīng)用,該web應(yīng)用包括 單個或多個文檔、幀、框架、文件、對象、應(yīng)用程序和/或窗口。可 以將關(guān)于每個媒體文件的信息作為視頻數(shù)據(jù)記錄保存在數(shù)據(jù)庫中。視 頻數(shù)據(jù)記錄19可以包括(但不限于)諸如標題、描述、URL、類型、視頻時間或者長度、比特率和日期之類的信息。
作為概述,本發(fā)明的一個實施例可以包括協(xié)議爬取器2、儲存庫 4、推薦引擎6以及應(yīng)用爬取器10。協(xié)議爬取器2是高吞吐量HTTP 引擎,其爬取web并識別可以提供視頻內(nèi)容的站點。協(xié)議爬取器2 指揮應(yīng)用爬取器IO來爬取特定的站點并為其編制索引。將應(yīng)用爬取 器10收集的信息存儲在儲存庫4中??蛇x地,推薦引擎6可以用于 幫助提供對針對儲存庫發(fā)出査詢的有用響應(yīng)。
Truveo應(yīng)用爬取器的設(shè)計
現(xiàn)在參考如圖2所示的實施例,Truveo應(yīng)用爬取器10可以包括 三個組件,這三個組件協(xié)調(diào)工作以提供完整功能。這三個組件是(l) 査看器20, (2)提取器30,以及(3)爬取器40,將在下面對他們 進行說明。然而,應(yīng)該理解,這只是本發(fā)明的一個實施例,而其他實 施例可能以不同的順序來組合這些組件的功能性或者將這些組件的 功能性組合在較少的組件中。作為一個非限制性實例,查看器20可 以與提取器30組合,查看器20可以與爬取器40組合,等等。
作為概述,應(yīng)用爬取器10的技術(shù)使得能夠爬取當今的復(fù)合web 應(yīng)用。作為爬取器10的非限制性實例,査看器20動態(tài)地實例化所有 的組件并將這些組件組裝成一個完整的功能性應(yīng)用。提取器30可以 是自適應(yīng)數(shù)據(jù)挖掘引擎,其使用XPath、腳本、XSL和DOM導(dǎo)航以 提取大量的元數(shù)據(jù)。爬行引擎40識別動態(tài)鏈接并產(chǎn)生用戶事件和定 時器事件。應(yīng)該理解的是,關(guān)于圖2,本發(fā)明的一些實施例可以具有 RSS訂閱9 (虛線所示)和其他XML訂閱或者甚至簡單的web站點 列表,作為應(yīng)用爬取器10的獨立輸入源,代替協(xié)議爬取器2。應(yīng)用 爬取器10的另一實施例在沒有協(xié)議爬取器或者RSS訂閱作為輸入的 情況下使用。
查看器
在本實施例中,査看器20負責(zé)下載所有的web應(yīng)用組件、實例 化web應(yīng)用并且將"數(shù)據(jù)査詢接口"應(yīng)用到存在于該應(yīng)用中的所有 對象上。為了實現(xiàn)該功能,査看器20可以提供幾個軟件組件,這些 軟件組件可以用來執(zhí)行這些任務(wù),如圖3所示。作為實例而非限制,這些軟件可以任意包括
用于一個或多個瀏覽器的文檔對象模型(DOM)工具21;
能夠執(zhí)行JavaScript、 JScript、 ECMAScript、 XAML或者VBScript
的腳本引擎22;
XML解析引擎23;
層疊樣式表引擎24; 網(wǎng)絡(luò)1/0庫/引擎25;
HTML解析和渲染引擎26;
用于執(zhí)行諸如ActiveX控件等嵌入式控件的引擎27; 用于渲染web應(yīng)用的引擎28。
在本實施例中,査看器20下載和實例化如下的web應(yīng)用組件。 首先,它下載給定目標URL的HTML頁或者框架。這可以使用標準 HTTP GET操作來實現(xiàn)?;诟窰TML頁或者框架中的內(nèi)容,査看 器20隨后下載所有用于組裝完整應(yīng)用的附加文件。這些文件包括腳 本,圖像,樣式表,數(shù)據(jù)文件,插件,ActiveX控件,音頻或視頻流, 或者支持完整應(yīng)用所需要的任何其他組件。
一旦下載了所有的應(yīng)用組件文件,然后查看器20就通過使用適 當?shù)能浖M件(例如上面列出的軟件組件)來實例化該應(yīng)用。
一旦已經(jīng)實例化了所有的單獨應(yīng)用組件,并且整個web應(yīng)用已 經(jīng)被組裝,則査看器20將"數(shù)據(jù)査詢接口"應(yīng)用到所有被實例化的 軟件對象。這些"數(shù)據(jù)査詢接口"可以是封裝模塊(wrapper),該封 裝模塊(wrapper)使用標準接口來封裝web應(yīng)用中的軟件對象,Truveo 應(yīng)用爬取器10可以使用所述標準接口從頁中以自動化方式提取信 息。例如,"數(shù)據(jù)查詢接口"可以應(yīng)用到文檔對象模型中的每一單個 元素,這使得應(yīng)用爬取器10能夠查詢該DOM元素的任何屬性和樣 式。類似地,"數(shù)據(jù)査詢接口"可以應(yīng)用到在web應(yīng)用中實例化的每 個媒體播放器,這使得應(yīng)用爬取器10能夠向媒體播放器查詢媒體播 放器的屬性以及關(guān)于任何下載的音頻或視頻流的元數(shù)據(jù)??蛇x地,應(yīng) 該理解的是,"數(shù)據(jù)查詢接口"的一些實施例可以不使用封裝模塊來 封裝軟件對象。 一些實施例可以使用直接連接。提取器
Truveo應(yīng)用爬取器10的這個實施例的第二主要組件是提取器 30。在本發(fā)明的當前實施例中,提取器30負責(zé)識別被實例化web應(yīng) 用中包括有用信息的特定部分并且提供提取該信息到元數(shù)據(jù)記錄所 需要的邏輯。為了實現(xiàn)該功能,提取器30提供多個軟件組件,所述 軟件組件用于執(zhí)行這些任務(wù),如圖4所示。作為實例而非限制,這些 軟件組件可以任意包括
XSL引擎31;
XPath工具32;
正則表達式引擎33; 腳本執(zhí)行引擎34;
用于組件的嵌入式對象査看器35,組件例如是ActiveX和COM 對象,但不僅限于此;
網(wǎng)絡(luò)傳輸代理36,例如http代理; rtsp或其他多媒體流代理37;
軟件橋38,用于使用外部程序設(shè)計框架的類庫來處理數(shù)據(jù)(例 如,連接.NET的橋來進行元數(shù)據(jù)的附加處理); 分類引擎39,其用于對元數(shù)據(jù)進行分類; 文本解析和處理引擎41。
在本實施例中,提取器30通過以下各項來識別包括有用信息的 web應(yīng)用中的特定部分(1)、使用自動算法來識別包括有用數(shù)據(jù)的 應(yīng)用中的對象;(2)、使用預(yù)定義模板,所述模板使用有用數(shù)據(jù)來識 別對象;或者(3)、 (1)和(2)的組合。作為提取器用來識別web 應(yīng)用中的信息的自動算法的非限制性實例,提取器可以基于在特定時 間發(fā)生的DOM的變化、基于相對于頁上特定對象的空間接近性、基 于可視特性或者可視樣式、基于對存在的特定DOM結(jié)構(gòu)的識別和/ 或基于對web應(yīng)用中存在的特定文本或其他類型的信息的識別來識 別信息。應(yīng)該理解的是,在一個實施例中,這些自動算法使用提取器 30的組件,如加載和使用的模板所指示的那樣,以用于特定的網(wǎng)頁、 應(yīng)用等。作為能夠用于識別有用數(shù)據(jù)的模板的非限制性實例,提取器
3330可以使用"數(shù)據(jù)査詢接口"的方法或?qū)傩?,所?數(shù)據(jù)査詢接口" 由查看器20、 DOM路徑名、XSL或者Xpath過濾器、正則表達式、 腳本代碼的片段或者上面的任意組合所應(yīng)用。這些技術(shù)還可以層疊以 進一步地提煉所提取的信息。提取器30使用這種嵌入式邏輯從頁中 提取所有有用的信息,并在被請求后將其以結(jié)構(gòu)元數(shù)據(jù)記錄的形式返 回。
爬取器
Truveo應(yīng)用爬取器10的這個實施例的第三主要組件是爬取器 40。在本發(fā)明的當前實施例中,爬取器40負責(zé)分析被實例化的web 應(yīng)用、尋找并分析應(yīng)用中的所有可點擊項目(akaonClick、點擊事件 等)、通過插入事件來驅(qū)動web應(yīng)用、以及從應(yīng)用中提取信息并將其 寫入文件或數(shù)據(jù)庫。為了實現(xiàn)該功能,爬取器40提供多個軟件組件, 依靠所述軟件組件來執(zhí)行它的任務(wù)。作為實例而非限制,這些軟件可 以包括
文件I/0庫42;
網(wǎng)絡(luò)I/0庫43;
用于生成和存儲日志文件的庫44; 事件監(jiān)視器45。
在本實施例中,爬取器40分析web應(yīng)用并且査找頁中能夠響應(yīng) 鼠標點擊事件的所有可能項目。這些項目稱為"可點擊項目"。為了 實現(xiàn)該功能,爬取器40識別頁項目,例如
(1) HTML標記,例如鏈接(即<八>)標記,其可以響應(yīng)鼠標 點擊事件;
(2) 包括有效的"onClick"句柄的HTML元素,或者包括有效 "onClick"句柄的DOM中的對象的孩子;
(3) HTML元素,其關(guān)聯(lián)到用于處理鼠標點擊事件的HTML行
為;
(4) 任何嵌入式控件內(nèi)的元素或?qū)ο?,例如Flash對象或者媒 體播放器,其可以響應(yīng)鼠標事件;
(5) HTML元素,當被點擊時,其使網(wǎng)頁執(zhí)行表單提交。一旦爬取器40已經(jīng)識別出應(yīng)用中的所有"可點擊項目",爬取器 40將他們存儲在數(shù)據(jù)結(jié)構(gòu)中,例如樹,也稱為"爬取樹"。
在本實施例中,爬取器40還負責(zé)通過插入事件和監(jiān)視事件來驅(qū) 動和監(jiān)視web應(yīng)用。例如,爬取器40將事件插入到應(yīng)用中,例如但 不限于鼠標上移、鼠標下移或者鼠標點擊事件,以便模擬用戶點擊鏈 接的動作。爬取器40還可以插入定時器事件、媒體播放器事件或者 瀏覽器事件,例如頁面重載,以便按照需要控制web應(yīng)用。這樣, 作為非限制性的實例,爬取器40可以等待,直到在模擬的鼠標、鍵 盤或者其他用戶事件后為止。爬取器40也可以等待,直到程序上生 成的事件、瀏覽器事件和/或媒體播放器事件之后為止。除了驅(qū)動應(yīng) 用之外,爬取器40還監(jiān)視該應(yīng)用以便檢測各種事件。例如,爬取器 40可以檢測這樣的事件,即指示將新的數(shù)據(jù)載入應(yīng)用的時間的事件, 或者指示啟動新的視頻或者音頻流的時間的事件。這些事件全部都由 全局應(yīng)用事件監(jiān)視器監(jiān)視?;诔霈F(xiàn)或者沒有出現(xiàn)的特定狀態(tài)和/或 事件,事件監(jiān)視器負責(zé)監(jiān)視給定web應(yīng)用的狀態(tài)、監(jiān)視web應(yīng)用所 產(chǎn)生的事件、以及控制爬取器40的執(zhí)行。作為非限制性實例,事件 監(jiān)視器可以監(jiān)視(1)文檔對象模型的特定部分或者給定web應(yīng)用或 者嵌入式控件的對象狀態(tài),(2)顯示web應(yīng)用所使用的部分或所有 屏幕緩沖存儲器的變化,和/或(3)網(wǎng)頁、媒體播放器或者嵌入式控 件所產(chǎn)生的事件。
在正常操作下,爬取器40在對應(yīng)于第一目標URL的web應(yīng)用 已經(jīng)被完全實例化時開始操作。在這點,爬取器40識別頁面上所有 的"可點擊項目",然后模擬鼠標點擊列表中的第一個"可點擊"項 目。在這點,事件監(jiān)視器監(jiān)視應(yīng)用的變化以響應(yīng)模擬的點擊。基于事 件監(jiān)視器中的編碼邏輯, 一旦接收到特定的事件(例如,頁面加載或 者組件激活),事件監(jiān)視器就觸發(fā)提取器30,以返回包括來自web應(yīng) 用的所有期望信息的元數(shù)據(jù)記錄。然后,爬取器40獲得該元數(shù)據(jù)記 錄,并且將其寫到存儲器、文件,或者將其插入數(shù)據(jù)庫。 一旦己經(jīng)收 集到該數(shù)據(jù),爬取器40就重新檢查web應(yīng)用并且識別自上次模擬鼠 標點擊以來已經(jīng)出現(xiàn)的任何新的可點擊項目。將這些新的可點擊項目附加到"爬取樹"數(shù)據(jù)結(jié)構(gòu)。然后,爬取器40進行到"爬取樹"中 的下一"可點擊項目",模擬對該項目的鼠標點擊,并且重復(fù)上面的 步驟。爬取器40以這種方式繼續(xù),直到已經(jīng)找到并點擊web應(yīng)用中 的所有可點擊項目為止。當完成時,爬取器40接著進行到目標URL 列表中的下一個URL。爬取器40還可以包括用于爬取該樹的模板。 在一個實施例中,模板可以包括用于導(dǎo)航的路徑以及具體的時序指 令。應(yīng)該理解的是,除了別的以外,本發(fā)明所使用的模板可以不僅僅 管理數(shù)據(jù)提取,而且還管理在何處查找鏈接,跟蹤鏈接的時刻、爬取 的深度、如何跳過商業(yè)廣告等。 Truveo應(yīng)用爬取器的工作
現(xiàn)在參照圖6,在其標準工作模式下,當前Truveo應(yīng)用爬取器 10的實施例可以采取以下步驟。盡管下面探討了 HTML文件的下載, 但是下面也適用于任何web應(yīng)用或者文檔,例如XAML、 XML、 Acrobat、 Flash文件或者任何可下載的網(wǎng)頁,但不僅限于此。爬取器 10的方法可以包括下列步驟
1、 開始于目標URL (50)。
2、 下載給定URL的HTML文件(52)(也可以是XAML、 XML、 Acrobat、 Flash文件或者任何可下載的網(wǎng)頁)。基于HTML文件中的 信息,下載所有補充數(shù)據(jù)文件,所述補充數(shù)據(jù)文件用于建立完全web 應(yīng)用,例如,但不僅限于此.-
a. 圖像文件
b. 腳本文件,例如JavaScript、 Jscript和VBScript
c. XML數(shù)據(jù)文件和/或XAML文件
d. 樣式表文件
e. ActiveX組件或者插件
g. 音頻流
h. 動畫,例如Flash文件
i. HTML行為。
3、 當己經(jīng)下載了所有應(yīng)用組件時,通過執(zhí)行一系列動作來實例化完整的web應(yīng)用(54),所述動作例如是,但不僅限于此
a. 渲染HTML并且構(gòu)造文檔對象模型
b. 應(yīng)用樣式表
c. 執(zhí)行適當腳本解釋器中的任何腳本
d. 激活任何控件或者插件,例如ActiveX控件
e. 啟動視頻流或音頻流
f. 啟動動畫,例如Flash動畫
g. 執(zhí)行HTML行為腳本。
4、 一旦完整的web應(yīng)用已經(jīng)被組裝、實例化并且初始化,那么 就將如上所述的數(shù)據(jù)查詢接口應(yīng)用到可能包括有用數(shù)據(jù)的應(yīng)用中的 所有對象(56)。
5、 使用事件監(jiān)視器來監(jiān)視應(yīng)用的狀態(tài)(58),并且如果滿足特定 的條^K就執(zhí)行下列步驟
a. 加載預(yù)定義的應(yīng)用模板或者生成如上定義的自定義應(yīng)用模板
(60);
b. 運用應(yīng)用模板(62)以從web應(yīng)用中提取所有期望的信息;
c. 將提取的數(shù)據(jù)作為結(jié)構(gòu)數(shù)據(jù)信息記錄保存到文件或數(shù)據(jù)庫 (64)。
6、 檢查web應(yīng)用中的所有組件(66)以識別可以響應(yīng)鼠標事件 的^f有可能組件,也稱為可點擊項目。確定自上一次模擬鼠標事件后 已經(jīng)出現(xiàn)了哪些可點擊項目。將新的可點擊項目存儲在適當?shù)臄?shù)據(jù)結(jié) 構(gòu)中,例如包括在所有可能應(yīng)用狀態(tài)下的應(yīng)用中的所有可點擊項目的 樹的新的分支。
7、 模擬鼠標點擊可點擊項目樹的當前分支中的第一個可點擊項 目(68),然后開始。繼續(xù)重復(fù)這些步驟,直到己經(jīng)遍歷了整個可點 擊項目樹為止。
應(yīng)該理解的是,對于上述方法,可以可選地跳過一些步驟,例如 應(yīng)用數(shù)據(jù)查詢接口 。可以改變所述步驟的順序并且可以將一些步驟組 合成一個步驟。
現(xiàn)在參照圖7,可以將本發(fā)明的本質(zhì)視為爬取多個正在運行的、被實例化的文檔或應(yīng)用中的對象模型(70)并為其編制索引(72)。 再次,這可能發(fā)生在因特網(wǎng)范圍上,并且爬取可以包括遍歷不同機器 上的頁、文件、文檔或者應(yīng)用。在檢査可點擊項目前,實例化這些頁、 文件、文檔或者應(yīng)用以更加徹底地査看用于可用內(nèi)容和/或元數(shù)據(jù)的 每一個。
數(shù)據(jù)融合
現(xiàn)在參照圖8,可以將爬取器10收集的數(shù)據(jù)融合在一起。例如, 可以將從協(xié)議爬取器2提取的元數(shù)據(jù)與從應(yīng)用爬取器10提取的元數(shù) 據(jù)融合。另外,來自多個源的數(shù)據(jù)融合可以出現(xiàn)在應(yīng)用爬取器10自 身內(nèi)。例如,應(yīng)用爬取器可以同時査看多個與視頻相關(guān)的web瀏覽 器(窗口)。這些網(wǎng)頁甚至可以在不同的URI域中。本發(fā)明的實施例 可以還包括將視頻流的技術(shù)數(shù)據(jù)與得自其他源的元數(shù)據(jù)相融合,所述 其他源例如是應(yīng)用爬取器10、協(xié)議爬取器2、 RSS/XML訂閱9或者 得自用于分析視頻的工具74 (包括,但不限于將視頻流的音頻內(nèi)容 轉(zhuǎn)換成文本的語音識別工具)的元數(shù)據(jù),但不僅限于此。元數(shù)據(jù)融合 引擎76可以將適當?shù)闹羔?、鏈接、文本或者其他來自各種源的其他 信息保存在可搜索的參考數(shù)據(jù)庫中。
在本發(fā)明的另一實施例中,本發(fā)明的爬取技術(shù)包括將基于文本的 元數(shù)據(jù)與得自視頻自身的技術(shù)參數(shù)相關(guān)聯(lián)的能力。作為非限制性實
例,視頻的技術(shù)參數(shù)可以包括持續(xù)時間、分辨率、幀速率、品質(zhì)、格 式、索引圖像等。此外,從應(yīng)用爬取器收集的數(shù)據(jù)可以用下列各項進 行補充或與下列各項進行融合協(xié)議爬取器的數(shù)據(jù)、RSS訂閱、爬取 器的操作員的編輯評論、或者內(nèi)容創(chuàng)建者或發(fā)布者提供的數(shù)據(jù)。
如圖9所示,這樣做的一個方法可以包括一個過程,所述過程使 用僅具有有限功能的應(yīng)用爬取器140的一個實施例。例如,在步驟 150,本發(fā)明可以使用來自RSS訂閱的URL作為輸入;在步驟152, 下載HTML和任何補充材料;在歩驟154,在網(wǎng)頁中對其進行渲染(例 如,使用瀏覽器導(dǎo)航到URL),等待網(wǎng)頁顯示視頻,然后向多媒體播 放器查詢關(guān)于使用多媒體播放器公布的應(yīng)用編程接口 (API)的視頻 的信息。在該實施例中,本發(fā)明使用公布的API來査詢多媒體播放器的對象模型,并且將得自多媒體播放器的元數(shù)據(jù)與輸入URL的源所 提供的數(shù)據(jù)融合在一起。對于這個有限的應(yīng)用爬取器,輸入的URL 可能來自多個地方RSS、協(xié)議爬取器輸出、XML訂閱器、web應(yīng) 用所使用的隱藏數(shù)據(jù)流(例如,AJAX應(yīng)用使用或者簡單對象訪問協(xié) 議(SOAP)方法調(diào)用的XML服務(wù))、或者包括視頻的web站點的其 他目錄。應(yīng)該理解的是,本發(fā)明還可以包括融合呈現(xiàn)或顯示的視頻的 原本數(shù)據(jù)和技術(shù)細節(jié)的方法。如圖9所示,該方法可以包括在步驟 156,應(yīng)用數(shù)據(jù)查詢接口;在步驟158,使用事件監(jiān)視器;在步驟160, 加載模板;在步驟162,應(yīng)用模板;在步驟164,保存數(shù)據(jù);以及然 后返回步驟158。該方法可以包括在事件監(jiān)視器認為條件滿足后, 等待另一個目標URL。作為非限制性實例,所述條件可以包括視頻 文件的結(jié)束、視頻流,預(yù)定的時間段等。對于爬取器140,應(yīng)該理解 的是,本發(fā)明的一些實施例可以對所有站點僅使用一個模板。其他實 施例可以僅具有模板的子集或者減少數(shù)量的模板,這些子集或者減少 數(shù)量的模板是從所述模板中選擇的。
除了具有視頻的網(wǎng)頁以外,本發(fā)明還適用于下列情況
基于非瀏覽器的視頻應(yīng)用,例如下載視頻和相關(guān)元數(shù)據(jù)的多媒體
播放器;
除了包括動態(tài)文本和視頻廣告的網(wǎng)頁之外,具有靜態(tài)信息的網(wǎng)頁 (例如基于文本的新聞)。在該情況下,爬取器用于排除視頻和其他 動態(tài)內(nèi)容。
動態(tài)web應(yīng)用,例如AJAX應(yīng)用、wikK用戶論壇、照片共享站 點、財經(jīng)服務(wù)web站點、或者任何其內(nèi)容獨立于web服務(wù)器而變化 的網(wǎng)頁。例如,設(shè)想本發(fā)明的爬取器創(chuàng)建與具體股票代碼有關(guān)的所 有圖像和圖表的可搜索索引。
查看器的另一個特征是能夠"斷言"提供視頻或其他動態(tài)內(nèi)容的 web應(yīng)用的結(jié)構(gòu)。斷言代碼使用web站點的模板來確定web站點的 結(jié)構(gòu)是否已經(jīng)變化。如果站點已經(jīng)變化或者視頻(或者動態(tài)內(nèi)容)不 再可用,則不再提取數(shù)據(jù),并且如果其在web站點上不再可用,則 將先前提取的數(shù)據(jù)(如果有的話)從儲存庫中除去。該特征對于保持數(shù)據(jù)品質(zhì)是重要的。
盡管已經(jīng)參照其中特定具體實施例介紹并示出了本發(fā)明,但是本 領(lǐng)域技術(shù)人員應(yīng)該意識到,在不脫離本發(fā)明的精神和范圍的情況下, 可以進行程序和協(xié)議的各種改編、變化、改進、替代、刪除或者增加。 例如,利用上述任意實施例,應(yīng)用爬取器可以實時爬取對時間敏感的 視頻。視頻內(nèi)容可能對時間非常敏感,并且往往只在有限的時間窗期
間可用。利用上述任意實施例,在應(yīng)用爬取器(40)遍歷對象后,可 能存在后處理,所述后處理包括在將數(shù)據(jù)放入儲存庫前的數(shù)據(jù)融合 (如上所述)或者語音至文本的識別。
利用上述任意實施例,應(yīng)用爬取器可以使用元數(shù)據(jù)的許多字段來 編制內(nèi)容的索引。在一個實施例中,本申請可以到達視頻流或視頻播 放器并且取出相關(guān)的數(shù)據(jù)。在另一實施例中,本發(fā)明可以應(yīng)用于由視 頻流或者與視頻流協(xié)力激發(fā)的事件并利用這種方式獲得信息。應(yīng)該理 解的是,在一些實施例中,Truveo應(yīng)用爬取器將以與瀏覽器相同的方 式進行web應(yīng)用的渲染。因此,被實例化網(wǎng)頁、應(yīng)用等的狀態(tài)與瀏 覽器創(chuàng)建的相同。這使得爬取器能夠找到對象模型中的內(nèi)容,其僅在 文檔或文件被實例化的情況下可用。利用上述任意實施例,應(yīng)該理解 的是,爬取器還可以被配置為處理視頻流并且不僅限于視頻流。應(yīng)該 理解的是,術(shù)語"文件",如"視頻文件"中的"文件"可以包括以 流的形式從服務(wù)器(即,媒體服務(wù)器)傳輸文件的內(nèi)容。
應(yīng)該理解的是,應(yīng)用爬取器組裝并且動態(tài)實例化網(wǎng)頁的組件,然 后可以分析被實例化的web應(yīng)用以定位網(wǎng)頁上的期望組件。這可以 包括查找并分析該應(yīng)用中的所有可點擊項目、通過插入事件來驅(qū)動 web應(yīng)用、以及從應(yīng)用中提取信息并將其寫入文件或數(shù)據(jù)庫。用于組 裝并且實例化web應(yīng)用的組件可以如本申請所描述的那樣。在其他 實施例中,可以對本實施例進行改變,例如,但不限于組合各種組件 之間的功能、增加軟件組件以處理附加的應(yīng)用、同時執(zhí)行一些步驟等。 應(yīng)該理解的是,本發(fā)明還包括搜索引擎和方法,其搜索由本發(fā)明的爬 取器創(chuàng)建的數(shù)據(jù)庫。
此處所論述或者引用的公報僅作為本申請的申請日前的公開。現(xiàn)有發(fā)明不對本發(fā)明申請的授權(quán)造成影響。此外,提供的公布的日期可
能不同于實際的公布日期,這可能需要單獨確認。出于各種目的,2004 年11月22日提交的美國臨時申請60/630,552 (代理人案號 41702-1002)禾B 2004年11月22日提交的美國臨時申請60/630,423 (代理人案號41702-1001)均以引用方式并入本文。將本文提及的所 有公報以引用方式并入本申請,以結(jié)合所提及的公報一起披露和說明 本發(fā)明的結(jié)構(gòu)和/或方法。
根據(jù)本發(fā)明的目標和實踐,可以預(yù)期結(jié)果的期望變化或者差異。 因此,本發(fā)明由所附的權(quán)利要求的合理的盡可能廣的范圍來限定。
權(quán)利要求
1、一種計算機實現(xiàn)的方法,包括對多個運行的、被實例化的文檔或應(yīng)用的對象模型進行爬取并為其編制索引。
2、 如權(quán)利要求1所述的方法,其中,爬取包括逐個走過各個機 器,以便遍歷每臺機器上的至少一個文檔或應(yīng)用。
3、 如權(quán)利要求2所述的方法,其中,各臺機器位于不同的物理位置并被連接到計算機網(wǎng)絡(luò)。
4、 如權(quán)利要求l所述的方法,其中,爬取包括跟蹤可點擊項目的樹;以自動方式來激活項目,所述自動方式與人用戶的方式基本相同。
5、 如權(quán)利要求1所述的方法,其中,爬取包括跟蹤頁面或應(yīng)用 的種子列表。
6、 如權(quán)利要求1所述的方法,其中,爬取包括跟蹤選自下列各 項中的至少一項的頁面或應(yīng)用的種子列表URL列表、應(yīng)用指針列 表或者RSS訂閱。
7、 如權(quán)利要求1所述的方法,其中,編制索引包括遍歷所述被 實例化的文檔或應(yīng)用的對象模型中的對象樹。
8、 如權(quán)利要求1所述的方法,其中,編制索引包括遍歷所述被 實例化的文檔或應(yīng)用的對象模型中的對象樹并且記錄所述對象的位 置和內(nèi)容。
9、 如權(quán)利要求l所述的方法,其中,編制索引包括 加載所述文檔或者應(yīng)用; 實例化所述文檔或者應(yīng)用;遍歷所述被實例化的文檔或應(yīng)用的對象模型中的對象樹。
10、 如權(quán)利要求l所述的方法,其中,編制索引包括到達所述正 運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將所述 節(jié)點記錄在數(shù)據(jù)庫中。
11、 如權(quán)利要求l所述的方法,其中,編制索引包括到達所述正 運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將指向 所述節(jié)點的指針存儲在數(shù)據(jù)庫中。
12、 如權(quán)利要求l所述的方法,其中,編制索引包括將與媒體有 關(guān)的多個通用資源定位符(URL)存儲在數(shù)據(jù)庫中。
13、 如權(quán)利要求l所述的方法,其中,編制索引包括遍歷所述被 實例化的文檔或應(yīng)用的對象模型中的對象樹并模擬鼠標、鍵盤或其他 用戶事件。
14、 如權(quán)利要求13所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷所述對象樹。
15、 如權(quán)利要求13所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷作為所述事件的結(jié)果而被顯示的新的應(yīng)用或文 檔的對象樹。
16、 如權(quán)利要求l所述的方法,其中,所述對象是所述被實例化 的文檔或應(yīng)用的對象模型的任何節(jié)點或元素。
17、 如權(quán)利要求l所述的方法,其中,被爬取的所述文檔或應(yīng)用 包括下列各項中的至少一項字處理文件、Acrobat文件、電子數(shù)據(jù) 表、瀏覽器應(yīng)用、媒體播放器、多媒體應(yīng)用或者嵌入在媒體流中的元 數(shù)據(jù)報頭。
18、 如權(quán)利要求l所述的方法,其中,被爬取的所述文檔或應(yīng)用 包括操作系統(tǒng)。
19、 如權(quán)利要求l所述的方法,其中,被爬取的所述文檔或應(yīng)用 包括文件系統(tǒng)。
20、 如權(quán)利要求l所述的方法,其中,爬取包括爬取下列類型的 網(wǎng)絡(luò)內(nèi)聯(lián)網(wǎng)、單機或者單機上的多個應(yīng)用。
21、 如權(quán)利要求l所述的方法,其中,爬取包括爬取因特網(wǎng)。
22、 如權(quán)利要求1所述的方法,其中,爬取包括爬取TCP/IP網(wǎng) 絡(luò)上的任何設(shè)備。
23、 如權(quán)利要求l所述的方法,其中,爬取包括爬取公用網(wǎng)絡(luò)上 的任何設(shè)備。
24、 如權(quán)利要求l所述的方法,其中,爬取包括爬取專用網(wǎng)絡(luò)上 的任何設(shè)備。
25、 如權(quán)利要求l所述的方法,其中,所述應(yīng)用或者文檔被完全 實例化。
26、 如權(quán)利要求l所述的方法,其中,所述應(yīng)用或者文檔的僅僅 一部分被實例化。
27、 如權(quán)利要求l所述的方法,其中,編制索引還實例化視頻文件。
28、 如權(quán)利要求1所述的方法,其中,編制索引還實例化視頻流。
29、 如權(quán)利要求1所述的方法,還包括將數(shù)據(jù)査詢接口添加到所 述正運行的被實例化的文檔或應(yīng)用中的軟件對象,以便能夠連接應(yīng)用 爬取器。
30、 如權(quán)利要求1所述的方法,還包括降低安全控制以允許訪問 所述對象模型。
31、 一種計算機實現(xiàn)的方法,用于在計算機網(wǎng)絡(luò)上搜索視頻文件, 所述方法包括對多個運行的、被實例化的文檔或應(yīng)用的對象模型進行爬取并為 其編制索引,以定位視頻文件。
32、 如權(quán)利要求31所述的方法,其中,爬取包括逐個走過各個 機器,以便遍歷每臺機器上的至少--個文檔或應(yīng)用。
33、 如權(quán)利要求32所述的方法,其中,各臺機器位于不同的物 理位置并被連接到計算機網(wǎng)絡(luò)。
34、 如權(quán)利要求31所述的方法,其中,爬取包括 跟蹤可點擊項目的樹;以自動方式來激活項目,所述自動方式與人用戶的方式基本相同。
35、 如權(quán)利要求31所述的方法,其中,爬取包括跟蹤頁面或應(yīng) 用的種子列表。
36、 如權(quán)利要求31所述的方法,其中,爬取包括跟蹤選自下列 各項中的至少一項的頁面或應(yīng)用的種子列表URL列表、應(yīng)用指針 列表或者RSS訂閱。
37、 如權(quán)利要求31所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹。
38、 如權(quán)利要求31所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹并且記錄所述對象的 位置和內(nèi)容。
39、 如權(quán)利要求31所述的方法,其中,編制索引包括 加載所述文檔或者應(yīng)用; 實例化所述文檔或者應(yīng)用;遍歷所述被實例化的文檔或應(yīng)用的對象模型中的對象樹。
40、 如權(quán)利要求31所述的方法,其中,編制索引包括到達所述 正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將所 述節(jié)點記錄在數(shù)據(jù)庫中。
41、 如權(quán)利要求31所述的方法,其中,編制索引包括到達所述 正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將指 向所述節(jié)點的指針存儲在數(shù)據(jù)庫中。
42、 如權(quán)利要求31所述的方法,其中,編制索引包括將與媒體有關(guān)的多個通用資源定位符(URL)存儲在數(shù)據(jù)庫中。
43、 如權(quán)利要求31所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹并模擬鼠標、鍵盤或其 他用戶事件。
44、 如權(quán)利要求43所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷所述對象樹。
45、 如權(quán)利要求43所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷作為所述事件的結(jié)果而被顯示的新的應(yīng)用或文 檔的對象樹。
46、 如權(quán)利要求31所述的方法,其中,所述對象是所述被實例 化的文檔或應(yīng)用的對象模型中的任何節(jié)點或元素。
47、 如權(quán)利要求31所述的方法,其中,被爬取的所述文檔或應(yīng) 用包括下列各項中的至少一項字處理文件、Acrobat文件、電子數(shù) 據(jù)表、瀏覽器應(yīng)用、媒體播放器、多媒體應(yīng)用或者嵌入在媒體流中的 元數(shù)據(jù)報頭。
48、 如權(quán)利要求31所述的方法,其中,被爬取的所述文檔或應(yīng) 用包括操作系統(tǒng)。
49、 如權(quán)利要求31所述的方法,其中,被爬取的所述文檔或應(yīng) 用包括文件系統(tǒng)。
50、 如權(quán)利要求31所述的方法,其中,爬取包括爬取下列類型的網(wǎng)絡(luò)內(nèi)聯(lián)網(wǎng)、單機或者單機上的多個應(yīng)用。
51、 如權(quán)利要求31所述的方法,其中,爬取包括爬取因特網(wǎng)。
52、 如權(quán)利要求31所述的方法,其中,爬取包括爬取TCP/IP網(wǎng) 絡(luò)上的任何設(shè)備。
53、 如權(quán)利要求31所述的方法,其中,爬取包括爬取公用網(wǎng)絡(luò) 上的任何設(shè)備。
54、 如權(quán)利要求31所述的方法,其中,爬取包括爬取專用網(wǎng)絡(luò) 上的任何設(shè)備。
55、 如權(quán)利要求31所述的方法,其中,所述應(yīng)用或者文檔被完 全實例化。
56、 如權(quán)利要求31所述的方法,其中,所述應(yīng)用或者文檔的僅 僅一部分被實例化。
57、 如權(quán)利要求31所述的方法,其中,編制索引還實例化視頻 文件。
58、 如權(quán)利要求31所述的方法,其中,編制索引還實例化視頻流。
59、 如權(quán)利要求31所述的方法,還包括將數(shù)據(jù)査詢接口添加到 所述正運行的被實例化的文檔或應(yīng)用中的軟件對象,以便連接應(yīng)用爬 取器。
60、 如權(quán)利要求31所述的方法,還包括降低安全控制以允許訪問所述對象模型。
61、 一種計算機實現(xiàn)的用于創(chuàng)建可搜索數(shù)據(jù)庫的方法,所述方法 包括對多個運行的、被實例化的文檔或應(yīng)用的對象模型進行爬取以定 位視頻文件。通過將指向視頻文件的指針存儲在所述數(shù)據(jù)庫中,來對在所述對 象模型中找到的所述視頻文件編制索引;以及從所述對象模型中提取關(guān)于所述視頻文件的元數(shù)據(jù),并將所述元 數(shù)據(jù)保存在所述數(shù)據(jù)庫中。
62、 一種計算機實現(xiàn)的用于在因特網(wǎng)上搜索文件的方法,所述方 法包括提供協(xié)議爬取器,以用于識別富視頻的web站點;以及 提供應(yīng)用爬取器,所述應(yīng)用爬取器包括査看器,其用于動態(tài)地實例化和組裝所述富視頻的web站點 之一的網(wǎng)頁的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用;提取器,其用于識別包括有用信息的所述被實例化的web應(yīng) 用的特定部分并提供提取該信息到元數(shù)據(jù)記錄所需要的邏輯;以及爬取器,其用于分析所述被實例化的web應(yīng)用、査找并分析 所述應(yīng)用中的所有可點擊項目、通過插入事件來驅(qū)動所述web應(yīng)用、 以及從所述應(yīng)用中提取信息并將其寫入到文件或數(shù)據(jù)庫中。
63、 如權(quán)利要求62所述的方法,其中,所述査看器包括用于下 列各項中至少一項的軟件組件的代碼-文檔對象模型(DOM)工具,其用于一個或多個瀏覽器; 腳本引擎,其能夠執(zhí)行JavaScript、 JScript、 ECMAScript或者 VBScript;XML解析引擎;層疊式樣式表引擎;網(wǎng)絡(luò)I/0庫;HTML解析和渲染引擎;用于執(zhí)行諸如ActiveX控件之類的嵌入式控件的引擎;或者 用于渲染web應(yīng)用的引擎。
64、 如權(quán)利要求62所述的方法,其中,所述提取器包括下列各 項中至少一項的軟件組件的代碼XSL引擎;XPath工具;正則表達式引擎; 腳本執(zhí)行引擎;用于組件的嵌入式對象査看器,所述組件例如是ActiveX和COM 對象,但不僅限于此;網(wǎng)絡(luò)傳輸代理,例如http代理; rtsp或其他多媒體流代理;軟件橋,其結(jié)合外部編程框架的類庫來處理數(shù)據(jù);分類引擎,其用于對元數(shù)據(jù)進行分類;或者 文本解析和處理引擎。
65、 如權(quán)利要求62所述的方法,其中,所述爬取器包括下列各 項中至少一項的軟件組件的代碼文件I/0庫; 網(wǎng)絡(luò)I/0庫;或者用于生成和存儲日志文件的庫。
66、 一種計算機實現(xiàn)的用于在因特網(wǎng)上搜索文件的方法,所述方法包括査找目標URL;下載所述目標URL的HTML文件;基于所述HTML中的信息,下載用于構(gòu)建完整web應(yīng)用的補充數(shù)據(jù)文件;根據(jù)所述補充數(shù)據(jù)文件和所述HTML文件來組裝應(yīng)用組件; 實例化應(yīng)用組件以創(chuàng)建web應(yīng)用;將數(shù)據(jù)査詢接口應(yīng)用到可能包括有用數(shù)據(jù)的所述web應(yīng)用中的 所有對象;加載預(yù)定義的應(yīng)用模板或者生成并自動定義應(yīng)用模板; 將所述應(yīng)用模板應(yīng)用到從所述web應(yīng)用提取所有需要的信息的 過程中;將所需要的信息作為結(jié)構(gòu)化數(shù)據(jù)信息記錄存儲到文件或數(shù)據(jù)庫中;檢査所述web應(yīng)用中的所有組件以識別可以響應(yīng)鼠標事件或形 成可點擊項目的所有可能組件;確定自上一次模擬鼠標事件后已經(jīng)出現(xiàn)了哪些可點擊項目;將新的可點擊項目存儲在適當?shù)臄?shù)據(jù)結(jié)構(gòu)中,例如包括在所有可 能應(yīng)用狀態(tài)下的所述應(yīng)用中的所有可點擊項目的樹的新的分支以及模擬鼠標點擊所述可點擊項目樹的當前分支中的第一個可點擊 項目。
67、 如權(quán)利要求66所述的方法,還包括重復(fù)該方法,直到已經(jīng) 遍歷了整個可點擊項目樹為止。
68、 如權(quán)利要求66所述的方法,其中,實例化步驟包括下列各 項中的至少一項渲染HTML并且構(gòu)造所述文檔對象模型; 應(yīng)用樣式表;執(zhí)行適當?shù)哪_本解釋器中的腳本;激活任意控件或者插件,例如ActiveX控件;啟動視頻流或音頻流;啟動動畫,例如Flash動畫;或者執(zhí)行HTML行為腳本。
69、 一種計算機系統(tǒng),包括具有編程代碼的應(yīng)用爬取器,以用于從web站點爬取正運行的、 被實例化的文檔或應(yīng)用的對象模型并為其編制索引。
70、 如權(quán)利要求69所述的計算機系統(tǒng),還包括 協(xié)議爬取器,用于識別所檢查的web站點,其中,所述應(yīng)用爬取器從所述web站點爬取正運行的、被實例化的文檔或應(yīng)用的所述 對象模型并為其編制索引。
71、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述應(yīng)用爬取器 包括查看器,其用于動態(tài)地實例化和組裝所述web站點之-的網(wǎng)頁 的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用。
72、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述應(yīng)用爬取器 包括提取器,其用于識別包括有用信息的所述被實例化的web應(yīng)用 的特定部分并提供提取該信息到元數(shù)據(jù)記錄所需要的邏輯。
73、 如權(quán)利要求69所述的計算機系統(tǒng),其中所述應(yīng)用爬取器包括爬取器,其用于分析所述被實例化的web應(yīng)用、査找并分析所 述應(yīng)用中的所有可點擊項目、通過插入事件來驅(qū)動所述web應(yīng)用、 以及從所述應(yīng)用中提取信息并將其寫入到文件或數(shù)據(jù)庫中。
74、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述協(xié)議爬取器 識別所檢査的包括至少一個視頻文件的web站點。
75、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述協(xié)議爬取器識別所檢査的包括至少一個媒體文件的web站點。
76、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述協(xié)議爬取器 識別所檢査的包括下列各項中至少一項的web站點mpeg文件、avi 文件、RM文件、flash文件、,ts文件、.wmv文件或QuicktimeTM文 件。
77、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述應(yīng)用爬取器 査看可點擊項目樹并以自動方式激活每一個項目,所述自動方式與人 用戶的方式基本相同。
78、 如權(quán)利要求69所述的計算機系統(tǒng),其中,所述應(yīng)用爬取器 使用模板以用于下列各項中的至少一項數(shù)據(jù)提取、跟蹤鏈接的定時、 爬取的深度、如何跳過商業(yè)廣告、從何處開始爬取、査找鏈接、標題 定位、媒體文件元數(shù)據(jù)定位、時間同步或者指示爬取器等待特定的事 件間隔,然后再次爬取對象樹。
79、 一種系統(tǒng),包括協(xié)議爬取器,用于識別富視頻的web站點;以及 應(yīng)用爬取器,所述應(yīng)用爬取器包括査看器,其用于動態(tài)地實例化和組裝所述富視頻的web站點 之一的網(wǎng)頁的所有組件,以創(chuàng)建至少一個被實例化的web應(yīng)用;提取器,其用于識別包括有用信息的所述被實例化的web應(yīng) 用的特定部分并提供提取該信息到元數(shù)據(jù)記錄所需要的邏輯;以及爬取器,其用于分析所述被實例化的web應(yīng)用、査找并分析 所述應(yīng)用中的所有可點擊項目、通過插入事件來驅(qū)動所述web應(yīng)用、 以及從所述應(yīng)用中提取信息并將其寫入到文件或數(shù)據(jù)庫中。
80、 如權(quán)利要求79所述的計算機系統(tǒng),其中,所述查看器包括 下列各項中至少一項的軟件組件的代碼-文檔對象模型(DOM)工具,其用于一個或多個瀏覽器; 腳本引擎,其能夠執(zhí)行JavaScript、 JScript、 ECMAScript或者 VBScript;XML解析引擎;層疊式樣式表引擎; 網(wǎng)絡(luò)I/0庫;HTML解析和渲染引擎;用于執(zhí)行諸如ActiveX控件之類的嵌入式控件的引擎;或者 用于渲染web應(yīng)用的引擎。
81、 如權(quán)利要求79所述的計算機系統(tǒng),其中,所述提取器包括 下列各項中至少一項的軟件組件的代碼XSL引擎;XPath工具;正則表達式引擎;腳本執(zhí)行引擎;用于組件的嵌入式對象査看器,所述組件例如是ActiveX和COM 對象,但不僅限于此;網(wǎng)絡(luò)傳輸代理,例如http代理; rtsp或其他多媒體流代理;軟件橋,其結(jié)合外部編程框架的類庫來處理數(shù)據(jù);分類引擎,其用于對元數(shù)據(jù)進行分類;或者 文本解析和處理引擎。
82、 如權(quán)利要求79所述的計算機系統(tǒng),其中,所述爬取器包括 下列各項中至少一項的軟件組件的代碼文件I/0庫網(wǎng)絡(luò)I/0庫;或者用于生成和存儲日志文件的庫。
83、 一種計算機實現(xiàn)的方法,包括 接收目標URL;以及編制多個正運行的、被實例化的文檔或應(yīng)用的對象模型的索引。
84、 如權(quán)利要求83所述的方法,其中,所述接收步驟包括接收 URL列表。
85、 如權(quán)利要求83所述的方法,其中,所述接收步驟包括接收 下列各項中的至少一項URL列表、應(yīng)用指針列表或者RSS訂閱。
86、 如權(quán)利要求83所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹。
87、 如權(quán)利要求83所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹并且記錄所述對象的 位置和內(nèi)容。
88、 如權(quán)利要求83所述的方法,其中,編制索引包括 加載所述文檔或者應(yīng)用; 實例化所述文檔或者應(yīng)用;遍歷所述被實例化的文檔或應(yīng)用的對象模型中的對象樹。
89、 如權(quán)利要求83所述的方法,其中,編制索引包括到達所述 正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將所 述節(jié)點記錄在數(shù)據(jù)庫中。
90、 如權(quán)利要求83所述的方法,其中,編制索引包括到達所述 正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將指 向所述節(jié)點的指針存儲在數(shù)據(jù)庫中。
91、 如權(quán)利要求83所述的方法,其中,編制索引包括將與媒體 有關(guān)的多個通用資源定位符(URL)存儲在數(shù)據(jù)庫中。
92、 如權(quán)利要求83所述的方法,其中,編制索引包括遍歷所述 被實例化的文檔或應(yīng)用的對象模型中的對象樹并模擬鼠標、鍵盤或其 他用戶事件。
93、 如權(quán)利要求92所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷所述對象樹。
94、 如權(quán)利要求92所述的方法,還包括在所述鼠標事件、鍵盤 事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限定 的時間段,然后再遍歷作為所述事件的結(jié)果而被顯示的新的應(yīng)用或文 檔的對象樹。
95、 如權(quán)利要求83所述的方法,其中,所述對象是所述被實例 化的文檔或應(yīng)用的對象模型的任何節(jié)點或元素。
96、 如權(quán)利要求83所述的方法,其中,被索引的所述文檔或應(yīng) 用包括下列各項中的至少一項字處理文件、Acrobat文件、電子數(shù) 據(jù)表、瀏覽器應(yīng)用、媒體播放器、多媒體應(yīng)用或者嵌入在媒體流中的 元數(shù)據(jù)報頭。
97、 如權(quán)利要求83所述的方法,其中,所述應(yīng)用或者文檔被完 全實例化。
98、 如權(quán)利要求83所述的方法,其中,所述應(yīng)用或者文檔的僅 僅一部分被實例化。
99、 如權(quán)利要求83所述的方法,其中,編制索引還實例化視頻 文件。
100、 如權(quán)利要求83所述的方法,其中,編制索引還實例化視頻流。
101、 如權(quán)利要求83所述的方法,還包括將數(shù)據(jù)查詢接口添加到 所述正運行的被實例化的文檔或應(yīng)用中的軟件對象,以便能夠連接應(yīng) 用爬取器。
102、 如權(quán)利要求83所述的方法,還包括降低安全控制以允許訪 問所述對象模型。
103、 一種計算機程序產(chǎn)品,包括-計算機可用介質(zhì)和包括在所述計算機可用介質(zhì)上的計算機可讀 代碼,所述計算機可讀代碼包括計算機可讀程序代碼,其使計算機實現(xiàn)對正運行的被實例化的文 檔或應(yīng)用的對象模型進行爬取并為其編制索引。
104、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括逐個走過各 個機器,以便遍歷每臺機器上的至少一個文檔或應(yīng)用。
105、 如權(quán)利要求104所述的產(chǎn)品,其中,各臺機器位于不同的 物理位置并被連接到計算機網(wǎng)絡(luò)。
106、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括 跟蹤可點擊項目的樹;以自動方式來激活項目,所述自動方式與人用戶的方式基本相同。
107、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括跟蹤頁面或 應(yīng)用的種子列表。
108、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括跟蹤選自下 列各項中的至少一項的頁面或應(yīng)用的種子列表URL列表、應(yīng)用指 針列表或者RSS訂閱。
109、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括遍歷所 述被實例化的文檔或應(yīng)用的對象模型中的對象樹。
110、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括遍歷所 述被實例化的文檔或應(yīng)用的對象模型中的對象樹并且記錄所述對象 的位置和內(nèi)容。
111、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括 加載所述文檔或者應(yīng)用; 實例化所述文檔或者應(yīng)用;遍歷所述被實例化的文檔或應(yīng)用的對象模型中的對象樹。
112、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括到達所 述正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將 所述節(jié)點記錄在數(shù)據(jù)庫中。
113、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括到達所 述正運行的、被實例化的文檔或應(yīng)用的對象模型中的任意節(jié)點并且將 指向所述節(jié)點的指針存儲在數(shù)據(jù)庫中。
114、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括將與媒 體有關(guān)的多個通用資源定位符(URL)存儲在數(shù)據(jù)庫中。
115、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引包括遍歷所 述被實例化的文檔或應(yīng)用的對象模型中的對象樹并模擬鼠標、鍵盤或 其他用戶事件。
116、 如權(quán)利要求115所述的產(chǎn)品,還包括在所述鼠標事件、鍵 盤事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限 定的時間段,然后再遍歷所述對象樹。
117、 如權(quán)利要求115所述的產(chǎn)品,還包括在所述鼠標事件、鍵 盤事件、其他用戶事件、瀏覽器事件或媒體播放器事件后等待一個限 定的時間段,然后再遍歷作為所述事件的結(jié)果而被顯示的新的應(yīng)用或 文檔的對象樹。
118、 如權(quán)利要求103所述的產(chǎn)品,其中,所述對象是所述被實 例化的文檔或應(yīng)用的對象模型的任何節(jié)點或元素。
119、 如權(quán)利要求103所述的產(chǎn)品,其中,被爬取的所述文檔或 應(yīng)用包括下列各項中的至少一項字處理文件、Acrobat文件、電子 數(shù)據(jù)表、瀏覽器應(yīng)用、媒體播放器、多媒體應(yīng)用或者嵌入在媒體流中 的元數(shù)據(jù)報頭。
120、 如權(quán)利要求103所述的產(chǎn)品,其中,被爬取的所述文檔或 應(yīng)用包括操作系統(tǒng)。
121、 如權(quán)利要求103所述的產(chǎn)品,其中,被爬取的所述文檔或 應(yīng)用包括文件系統(tǒng)。
122、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括爬取下列類 型的網(wǎng)絡(luò)內(nèi)聯(lián)網(wǎng)、單機或者單機上的多個應(yīng)用。
123、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括爬取因特網(wǎng)。
124、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括爬取TCP/IP 網(wǎng)絡(luò)上的任何設(shè)備。
125、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括爬取公用網(wǎng) 絡(luò)上的任何設(shè)備。
126、 如權(quán)利要求103所述的產(chǎn)品,其中,爬取包括爬取專用網(wǎng) 絡(luò)上的任何設(shè)備。
127、 如權(quán)利要求103所述的產(chǎn)品,其中,所述應(yīng)用或者文檔被 完全實例化。
128、 如權(quán)利要求103所述的產(chǎn)品,其中,所述應(yīng)用或者文檔的 僅僅一部分被實例化。
129、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引還實例化視 頻文件。
130、 如權(quán)利要求103所述的產(chǎn)品,其中,編制索引還實例化視 頻流。
131、 如權(quán)利要求103所述的產(chǎn)品,還包括將數(shù)據(jù)查詢接口添加 到所述正運行的被實例化的文檔或應(yīng)用中的軟件對象,以便能夠連接 應(yīng)用爬取器。
132、 如權(quán)利要求103所述的產(chǎn)品,還包括降低安全控制以允許 訪問所述對象模型。
全文摘要
提供了一種計算機實現(xiàn)的方法以用于搜索因特網(wǎng)上的文件。在一個實施例中,該方法可以提供應(yīng)用爬取器,其組裝并動態(tài)地實例化網(wǎng)頁的所有組件。然后,對該實例化的web應(yīng)用進行分析以定位網(wǎng)頁上的期望組件。這可以包括查找并分析應(yīng)用中的所有可點擊項目,通過插入事件來驅(qū)動web應(yīng)用,以及從該應(yīng)用中提取信息并將該信息寫入文件或數(shù)據(jù)庫。
文檔編號G06F15/76GK101443751SQ200580047029
公開日2009年5月27日 申請日期2005年11月22日 優(yōu)先權(quán)日2004年11月22日
發(fā)明者A·貝格蘭, P·科克斯, T·D·塔特爾 申請人:特魯維奧公司