一種通用的Web自動瀏覽導(dǎo)航方法
【專利摘要】本發(fā)明涉及一種通用的Web自動瀏覽導(dǎo)航方法,按如下步驟進(jìn)行:S1、建立Web自動瀏覽導(dǎo)航的頁面交互模型,所述頁面交互模型包括導(dǎo)航鏈接對象和導(dǎo)航鏈接調(diào)用,所述導(dǎo)航鏈接對象包括導(dǎo)航鏈接ID、至少一個導(dǎo)航控件描述和一個目標(biāo)頁面描述;所述導(dǎo)航鏈接調(diào)用包括調(diào)用導(dǎo)航鏈接ID和至少一個導(dǎo)航動作描述,所述調(diào)用導(dǎo)航鏈接ID與導(dǎo)航鏈接對象中的導(dǎo)航鏈接ID對應(yīng);S2、根據(jù)頁面交互模型錄制用戶在Web頁面的動作,采集與頁面交互模型中匹配的信息形成頁面交互規(guī)則;S3、自動回放并執(zhí)行頁面交互規(guī)則,模擬用戶與Web頁面的交互操作。本發(fā)明完成網(wǎng)頁的自動化訪問和獲取,靈活性強(qiáng)、定位準(zhǔn)確且復(fù)雜度低、通用性好。
【專利說明】-種通用的Web自動瀏覽導(dǎo)航方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種Web瀏覽導(dǎo)航方法,更具體的說,涉及一種通用的Web自動瀏覽導(dǎo) 航方法。
【背景技術(shù)】
[0002] Web是目前最大的信息發(fā)布和共享平臺,其中包含了大量有價值的數(shù)據(jù)信息,因 此,人們越來越多地希望能從Web上抽取并挖掘這些有價值的數(shù)據(jù)信息,開發(fā)各種基于Web 信息的深度數(shù)據(jù)分析應(yīng)用,提供各種數(shù)據(jù)分析增值服務(wù)。
[0003] 但類似于Web信息抽取挖掘一類的應(yīng)用首先要解決的一個重要問題是:如何能讓 系統(tǒng)像人一樣去完成網(wǎng)頁的自動瀏覽導(dǎo)航和交互操作,以便能逐步跳轉(zhuǎn)并訪問獲取到感興 趣的網(wǎng)頁。除了網(wǎng)頁數(shù)據(jù)抽取挖掘應(yīng)用外,其他的各種Web自動化應(yīng)用系統(tǒng)也都需要具有 這種自動化的網(wǎng)頁瀏覽導(dǎo)航能力,例如,Web應(yīng)用軟件測試時需要能自動瀏覽和檢查所有的 網(wǎng)頁是否能順利到達(dá)并正確工作。這些Web自動化應(yīng)用都需要研究解決并提供網(wǎng)頁自動瀏 覽導(dǎo)航技術(shù)和方法。
[0004] 在實(shí)際的Web信息抽取處理過程中,由于Web應(yīng)用通常會使用Session、 Application、Cookie等對象維護(hù)整個Web應(yīng)用或網(wǎng)頁間的狀態(tài)或事務(wù)數(shù)據(jù)(如購物車), 因此,無法用一個URL直接訪問到所需的數(shù)據(jù)網(wǎng)頁,需要按照Web應(yīng)用規(guī)定的網(wǎng)頁瀏覽導(dǎo)航 關(guān)系訪問到指定網(wǎng)頁;此外,深度網(wǎng)頁(De印Web)數(shù)據(jù)通常存在于背后的數(shù)據(jù)庫中,深度 網(wǎng)頁的訪問往往需要用戶在導(dǎo)航過程中進(jìn)行一些網(wǎng)頁交互操作(如輸入一個關(guān)鍵字進(jìn)行 搜索、輸入用戶名和密碼完成登錄、勾選一個選擇框、選擇一個下拉框選項(xiàng)等)。因此,Web 信息抽取過程中,需要能模擬用戶的瀏覽和交互操作行為完成所需要的網(wǎng)頁交互和瀏覽導(dǎo) 航操作,以此獲取到所需要的網(wǎng)頁。這就需要一種深度網(wǎng)頁自動瀏覽導(dǎo)航技術(shù)和方法。
[0005] 同時,為了提供流程化的Web網(wǎng)頁瀏覽導(dǎo)航控制能力,例如,需要循環(huán)地從電子商 務(wù)網(wǎng)站上搜索和查看1千個不同的商品數(shù)據(jù)記錄信息網(wǎng)頁,則需要提供各種強(qiáng)大而靈活的 流程控制處理能力。
[0006] 然而,由于Web網(wǎng)頁自動瀏覽導(dǎo)航技術(shù)的復(fù)雜性,在類似于Web信息抽取這類Web 自動化應(yīng)用領(lǐng)域,目前國內(nèi)還缺少通用的Web瀏覽導(dǎo)航技術(shù)和系統(tǒng)的支持能力。在Web信 息抽取應(yīng)用領(lǐng)域,目前有不少Web數(shù)據(jù)抽取技術(shù),但幾乎絕大多數(shù)都僅僅局限于對已獲取 網(wǎng)頁的數(shù)據(jù)抽取技術(shù)研究,而忽略了要獲取這些網(wǎng)頁首先必須考慮網(wǎng)頁自動瀏覽導(dǎo)航技術(shù) 和功能。這導(dǎo)致現(xiàn)有的大多數(shù)Web信息抽取技術(shù)和系統(tǒng)離實(shí)際的Web信息抽取應(yīng)用需求還 有很大的距離。由于缺少網(wǎng)頁自動瀏覽技術(shù)和功能的支撐,現(xiàn)有的絕大多數(shù)需要進(jìn)行Web 信息抽取應(yīng)用的企業(yè),基本上都要依靠硬編碼的方式對每一個不同的網(wǎng)站和網(wǎng)頁編寫不同 的網(wǎng)頁訪問程序,這種方法顯然效率太低,如果需要訪問數(shù)十至數(shù)百個網(wǎng)站或網(wǎng)頁,則需要 編寫太多的程序。也有的企業(yè)使用網(wǎng)頁爬蟲工具,爬取網(wǎng)站上的所有網(wǎng)頁。但爬蟲工具遠(yuǎn) 遠(yuǎn)無法滿足要求,一是爬蟲工具只能爬取通過簡單的超鏈可以到達(dá)的靜態(tài)網(wǎng)頁,而無法獲 取那些需要通過網(wǎng)頁交互(如輸入一個搜索關(guān)鍵字、或者用戶名和密碼等)才能獲取的深 度網(wǎng)頁。
[0007] 目前,有很多獨(dú)立的網(wǎng)頁自動瀏覽導(dǎo)航技術(shù)和系統(tǒng),包括WebVCR、WebMacros、 Koala、Smart Bookmarks 等。
[0008] 其中,WebVCR和WebMacros是較早被提出來的,它們能記錄頁面導(dǎo)航序列并重放 以重現(xiàn)用戶交互生成的動作,可以支持部分頁面控件(主要是anchor和表單相關(guān)的控件) 上的部分導(dǎo)航動作(如點(diǎn)擊、填寫表單等),但它們不能執(zhí)行復(fù)雜的腳本代碼、不支持AJAX 頁面,此外不能支持參數(shù)化和缺乏應(yīng)有的控制邏輯。
[0009] Koala能支持用戶使用偽自然式的腳本語言來指定Web導(dǎo)航序列的宏指令,比如 "type Danny into first name field"、"click search button"。明顯地,這種腳本語言對 于一般用戶要求較高,且不能提供友好的界面來進(jìn)行交互。其次,同WebVCR-樣,它對于控 件上的導(dǎo)航動作支持也比較單一。
[0010] Smart Bookmarks能夠保存一個"書簽"式的Web導(dǎo)航序列來訪問動態(tài)頁面,用戶 可以定制自己的"書簽"來完成特定的導(dǎo)航動作。同時,它使用文本、其他指定的屬性(如對 于anchor控件使用href屬性)或者完整的Xpath路徑(如HTML/B0DY/TABLE[2]/TB0DY/ TR[3]/TD[5]/DIV[2])來定位導(dǎo)航控件,這種較為單一的方式對于頁面上的變化容易產(chǎn)生 定位不準(zhǔn)的問題。
[0011] 一個問題是,以上所述的語言或系統(tǒng)都是作為獨(dú)立的網(wǎng)頁自動瀏覽導(dǎo)航工具工作 的,它們無法與Web信息抽取等Web自動化應(yīng)用集成使用?,F(xiàn)有的支持瀏覽導(dǎo)航技術(shù)的典 型Web信息抽取系統(tǒng)研究工作有Wargo、Bode、Lixto等。
[0012] 其中,Wargo系統(tǒng)中的導(dǎo)航語言NSEQL是一種命令式語言,通過提供菜單選項(xiàng)使用 戶能選擇并記錄對頁面的操作事件。例如:Navigate(url,headers,target)命令表示在瀏 覽器的地址欄輸入一個URL, ClickOnAnchorByText (text, n,equals)命令表示點(diǎn)擊在頁面 中第η個Anchor元素(當(dāng)equals為真時,其文本為或包含"text")。該種語言定義在一 定程度上支持參數(shù)化,但整體不夠靈活,不能支持動態(tài)頁面上節(jié)點(diǎn)的定位,并且未能考慮復(fù) 雜的控制邏輯。
[0013] Bode是一個完整的導(dǎo)航和抽取系統(tǒng)。為完成導(dǎo)航和抽取任務(wù),它定義了三類數(shù)據(jù) 抽取動作:Extraction actions、URL actions和Page actions。其中,Extraction actions 用來抽取或定位指定的頁面對象,URL actions用來發(fā)送頁面請求從而獲取返回的文檔, Page actions用來在指定的頁面對象上完成操作(即點(diǎn)擊超鏈、填寫文本框等)。同Smart Bookmarks -樣,其xpath定位能力不足。其次,沒有考慮參數(shù)化,并且缺乏應(yīng)有的控制邏 輯。
[0014] Lixto是目前最具代表性、也最為成功的商業(yè)化Web信息抽取系統(tǒng)。為了支持對 網(wǎng)頁的瀏覽導(dǎo)航,在Lixto系統(tǒng)中定義了一系列的PageClass文件,每個文件中包含了一組 action和一些所要使用的參數(shù)。這些action主要有:1)點(diǎn)擊button、填寫textbox等頁 面actions,用于抽取的wrapaction (Elog語言[15, 16]定義的抽取模式);2) PageClass文 件之間的調(diào)用action ;3)處理邏輯的actions,例如if、loop。但是這樣的action定義顯 然過于復(fù)雜,而且需要額外根據(jù)不同的情形對頁面控件的動作做不同的定義,例如點(diǎn)擊動 作根據(jù)控件存在與否有不同的點(diǎn)擊動作定義。在針對控制邏輯處理時,把它們定義成不同 的action,這樣處理比較欠缺靈活性。Lixto -個較為突出的問題是其規(guī)則語言實(shí)現(xiàn)代價 和復(fù)雜度較高,而且可擴(kuò)展性和通用性較差。
【發(fā)明內(nèi)容】
[0015] 本發(fā)明所要解決的技術(shù)問題是,克服目前Web自動化應(yīng)用中缺少網(wǎng)頁自動瀏覽導(dǎo) 航技術(shù)支持的缺點(diǎn),提供一種通用的Web自動瀏覽導(dǎo)航方法,模仿和刻畫用戶在瀏覽器中 的交互和瀏覽導(dǎo)航行為,描述Web自動化應(yīng)用中復(fù)雜的網(wǎng)頁瀏覽導(dǎo)航邏輯,完成網(wǎng)頁的自 動化訪問和獲取,靈活性強(qiáng)、定位準(zhǔn)確且復(fù)雜度低、通用性好。
[0016] 為了解決以上技術(shù)問題,本發(fā)明提供一種通用的Web自動瀏覽導(dǎo)航方法,按如下 步驟進(jìn)行:
[0017] 第一步、構(gòu)建自動記錄用戶訪問網(wǎng)頁導(dǎo)航鏈接一系列交互操作的導(dǎo)航鏈接模型;
[0018] 第二步、編譯生成實(shí)現(xiàn)回放該一系列交互操作的可執(zhí)行指令。
[0019] 上述第一步的具體過程為
[0020] S1、建立Web自動瀏覽導(dǎo)航的頁面交互模型,所述頁面交互模型包括導(dǎo)航鏈接對 象和導(dǎo)航鏈接調(diào)用;
[0021] 所述導(dǎo)航鏈接對象包括導(dǎo)航鏈接ID,用于為此導(dǎo)航鏈接對象指定唯一標(biāo)識符;至 少一個導(dǎo)航控件描述,用于定義導(dǎo)航控件的名稱、類型和此導(dǎo)航控件在DOM樹上的位置;一 個目標(biāo)頁面描述,用于定義跳轉(zhuǎn)后的目標(biāo)頁面的ID和特征;
[0022] 所述導(dǎo)航鏈接調(diào)用包括調(diào)用導(dǎo)航鏈接ID,所述調(diào)用導(dǎo)航鏈接ID與導(dǎo)航鏈接對象 中的導(dǎo)航鏈接ID對應(yīng),用于調(diào)用特定的導(dǎo)航鏈接對象;至少一個導(dǎo)航動作描述,用于定義 導(dǎo)航動作的控件名稱、要執(zhí)行的控件動作和控件參數(shù)值;
[0023] S2、根據(jù)頁面交互模型錄制用戶在Web頁面的動作,采集與頁面交互模型中匹配 的信息形成頁面交互規(guī)則;
[0024] S3、自動回放并執(zhí)行頁面交互規(guī)則,模擬用戶與Web頁面的交互操作,完成Web頁 面的自動瀏覽導(dǎo)航。
[0025] 本發(fā)明技術(shù)方案的進(jìn)一步限定為,步驟Sl中,所述導(dǎo)航鏈接對象的導(dǎo)航控件描述 中,描述此導(dǎo)航控件在DOM樹上的位置時,有兩種描述方法:(1)當(dāng)此導(dǎo)航控件的位置靜態(tài) 確定時,則記錄導(dǎo)航控件在DOM樹上的靜態(tài)位置;(2)當(dāng)此導(dǎo)航控件的位置在導(dǎo)航鏈接對象 被調(diào)用時才能確定時,則此導(dǎo)航控件在DOM樹上的位置為空值,當(dāng)導(dǎo)航鏈接對象被調(diào)用執(zhí) 行時進(jìn)行設(shè)置。
[0026] 進(jìn)一步地,步驟Sl中,所述導(dǎo)航鏈接調(diào)用中導(dǎo)航動作描述中的控件參數(shù)值,有兩 種設(shè)定方法:(1)對于可靜態(tài)確定的參數(shù)值,則直接以"靜態(tài)參數(shù)值"的形式設(shè)置;(2)對于 無法靜態(tài)確定需要在執(zhí)行時刻動態(tài)傳入的參數(shù)值,則用形參名"來指定一個形式參數(shù),然 后在運(yùn)行時刻再將實(shí)際參數(shù)傳入。
[0027] 進(jìn)一步地,步驟Sl中,所述導(dǎo)航鏈接調(diào)用中,還包括流程控制邏輯,所述流程控制 邏輯包括循環(huán)控制邏輯和條件控制邏輯。
[0028] 進(jìn)一步地,在循環(huán)控制邏輯和條件控制邏輯中,控件的參數(shù)值通過參數(shù)列表獲得。
[0029] 進(jìn)一步地,步驟S2中,錄制過程中,采用自動和交互兩者結(jié)合的方式采集動作,自 動方式為用戶在Web瀏覽界面中進(jìn)行操作時,實(shí)時捕獲此頁面操作動作事件;交互方式為 手工設(shè)置動作及參數(shù)。
[0030] 進(jìn)一步地,步驟S3中,執(zhí)行過程中,自動回放并執(zhí)行頁面交互規(guī)則之前,還包括步 驟:對頁面交互規(guī)則進(jìn)行預(yù)編譯,生成預(yù)編譯文件;對預(yù)編譯文件進(jìn)行編譯,生成可執(zhí)行文 件。
[0031] 進(jìn)一步地,當(dāng)頁面交互規(guī)則變化時,將頁面交互規(guī)則重新進(jìn)行預(yù)編譯和編譯后,才 能執(zhí)行。
[0032] 進(jìn)一步地,步驟S2和S3中,錄制和執(zhí)行規(guī)則時,人機(jī)交互界面包括
[0033] 頁面模型視圖,用于顯示本頁面相關(guān)的頁面交互與瀏覽模型的內(nèi)容;
[0034] 瀏覽器視圖,用于展現(xiàn)當(dāng)前的瀏覽器頁面;
[0035] DOM樹結(jié)構(gòu)視圖,用于展示瀏覽器頁面對應(yīng)的DOM樹結(jié)構(gòu),在該樹中的節(jié)點(diǎn)上提供 操作菜單以幫助用戶完成交互式規(guī)則生成和檢查;
[0036] 導(dǎo)航頁面鏈接關(guān)系視圖,用于對于一系列的導(dǎo)航頁面的鏈接關(guān)系進(jìn)行表示;
[0037] 屬性視圖,用于對頁面模型視圖中的節(jié)點(diǎn)的屬性進(jìn)行顯示,并且可以提供一系列 相關(guān)的操作。
[0038] 本發(fā)明的有益效果是:本發(fā)明提供的一種通用的Web自動瀏覽導(dǎo)航方法,能模仿 和刻畫用戶在瀏覽器中的交互和瀏覽導(dǎo)航行為,能描述Web自動化應(yīng)用中復(fù)雜的網(wǎng)頁瀏覽 導(dǎo)航邏輯;本發(fā)明完成復(fù)雜的網(wǎng)頁瀏覽導(dǎo)航邏輯(如循環(huán)完成1千個商品名稱的搜索和結(jié) 果網(wǎng)頁檢查),自動回放并執(zhí)行自動化的網(wǎng)頁瀏覽導(dǎo)航和交互操作,以完成網(wǎng)頁的自動化訪 問和獲??;本發(fā)明靈活性強(qiáng)、定位準(zhǔn)確且復(fù)雜度低、通用性好,填補(bǔ)國內(nèi)空白,具有很強(qiáng)的實(shí) 際應(yīng)用價值。
【專利附圖】
【附圖說明】
[0039] 圖1為實(shí)施例1中導(dǎo)航鏈接模型的結(jié)構(gòu)示意圖;
[0040] 圖2為實(shí)施例1中瀏覽導(dǎo)航鏈接模型的應(yīng)用實(shí)例流程圖;
[0041] 圖3為實(shí)施例1中瀏覽導(dǎo)航和Web信息抽取應(yīng)用實(shí)例的流程圖;
[0042] 圖4為實(shí)施例1中基于XML語言建立的Web自動瀏覽導(dǎo)航的頁面交互模型;
[0043] 圖5為實(shí)施例1中自動瀏覽導(dǎo)航的流程圖;
[0044] 圖6為實(shí)施例1中人機(jī)交互界面的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0045] 實(shí)施例1
[0046] 大數(shù)據(jù)時代,隨著Web信息規(guī)模的不斷擴(kuò)大,越來越多的人們希望從Web中挖掘有 價值的數(shù)據(jù)信息,完成深度的價值發(fā)現(xiàn)。本發(fā)明中設(shè)計完成的全過程化Web信息抽取集成 規(guī)則語言和系統(tǒng)將能夠應(yīng)用于各種不同的Web信息采集和挖掘分析應(yīng)用。
[0047] Web頁面的復(fù)雜性、交互性和數(shù)據(jù)動態(tài)性通常使得難以通過簡單的URL鏈接來獲 取Web頁面。因此,為了刻畫Web信息抽取過程中的網(wǎng)頁自動瀏覽導(dǎo)航邏輯,我們首先需要 對用戶在瀏覽器中以人工方式進(jìn)行網(wǎng)頁交互和瀏覽導(dǎo)航的行為動作進(jìn)行抽象,然后建立一 個網(wǎng)頁自動交互和瀏覽導(dǎo)航的抽象模型,并進(jìn)一步定義和提供一種瀏覽導(dǎo)航規(guī)則語言,以 描述和刻畫出準(zhǔn)確的瀏覽導(dǎo)航邏輯。
[0048] 基于如上分析,建立一個導(dǎo)航鏈接模型,刻畫網(wǎng)頁間的一個鏈接跳轉(zhuǎn)和完成一個 導(dǎo)航鏈接所包含的一系列交互操作,我們將執(zhí)行Web瀏覽導(dǎo)航的每個交互動作稱為導(dǎo)航動 作,每個導(dǎo)航動作包括至少一個導(dǎo)航鏈接L,導(dǎo)航鏈接L的結(jié)構(gòu)示意圖如圖1中,每個導(dǎo)航 鏈接L包括一組瀏覽導(dǎo)航動作(Action Sequence, AS)和一個目標(biāo)頁面。從抽象層面看, 一個完整的Web數(shù)據(jù)抽取任務(wù)將由一系列導(dǎo)航鏈接組合而成。所述瀏覽導(dǎo)航動作是一系列 瀏覽導(dǎo)航交互動作集合,瀏覽導(dǎo)航交互動作指定被操作的控件及所述控件在DOM樹上的位 置、設(shè)定對應(yīng)控件操作時需要的參數(shù)值、定義該控件要執(zhí)行的具體動作。所述目標(biāo)頁面單元 用于描述對應(yīng)瀏覽導(dǎo)航動作單元執(zhí)行后跳轉(zhuǎn)的目標(biāo)地址的鏈接。目標(biāo)頁面單元中設(shè)定目標(biāo) 頁面ID和目標(biāo)頁面特征,目標(biāo)頁面特征對多分支頁面選擇正確的頁面。
[0049] 每個瀏覽導(dǎo)航動作實(shí)際上是對某個網(wǎng)頁控件進(jìn)行的某種交互操作,通常包含一個 或多個具體的控件設(shè)置動作,如設(shè)置文本框文本值,選中一個或多個復(fù)選按鈕等。每個瀏覽 導(dǎo)航動作包括以下幾部分內(nèi)容:
[0050] 控件描述和定位:指定具體操作的是網(wǎng)頁上的哪個控件以及該控件的在DOM樹上 的位置。對于靜態(tài)位置確定的控件(即用戶交互時記錄的xpath位置與運(yùn)行時一致),使 用確定的泛化xpath來定位;對于那些靜態(tài)位置不確定的動態(tài)控件(即在運(yùn)行時才能夠確 定,例如一組記錄中的某個字段為detail的鏈接),則需要使用動態(tài)xpath來定位。
[0051] 動作描述:定義瀏覽導(dǎo)航時在該控件上要執(zhí)行的具體動作,比如click、settext、 mouseover 等。
[0052] 控件操作參數(shù):某些控件操作需要參數(shù)值,例如textbox。一種是用戶交互時確 定、運(yùn)行時不變的靜態(tài)操作參數(shù)值,另一種是動態(tài)變化、僅在運(yùn)行時才能確定的操作參數(shù) 值,例如某個搜索框每次填入不同的關(guān)鍵詞,值的來源和讀取方式需要在動態(tài)運(yùn)行時刻指 定。
[0053] -個導(dǎo)航鏈接可包含一至多個上述的瀏覽導(dǎo)航動作。除此以外,一個導(dǎo)航鏈接還 指定當(dāng)跳轉(zhuǎn)到目標(biāo)頁面后所對應(yīng)的目標(biāo)頁面模型是什么。
[0054] 如圖2瀏覽導(dǎo)航鏈接模塊的應(yīng)用實(shí)例流程圖所述,一個完整的Web應(yīng)用處理任務(wù) 的瀏覽導(dǎo)航全過程是:從起始頁面U開始,經(jīng)過一系列的中間頁面{pi,i =0,l,2...,k} (即不需要抽取數(shù)據(jù)但必須經(jīng)過的頁面),最終到達(dá)用戶感興趣的數(shù)據(jù)頁面{Pj,j =
[0055] 圖3給出了一個完整的瀏覽導(dǎo)航和Web信息抽取應(yīng)用實(shí)例,它分為以下幾個步 驟:
[0056] (1)從空白的起始頁面U開始,在頁面地址欄中填入亞馬遜網(wǎng)站的URL(即圖中動 作1),然后跳轉(zhuǎn)到搜索頁面S;
[0057] (2)在搜索頁面S中輸入用戶想要查詢商品的關(guān)鍵字(動作2),點(diǎn)擊搜索按鈕(動 作3),跳轉(zhuǎn)到記錄頁面R ;很明顯S和R之間有一個鏈接關(guān)系,這個鏈接關(guān)系和動作2、3就 構(gòu)成一個L(AS);
[0058] (3)記錄頁面R中包含一組可抽取的商品數(shù)據(jù)記錄,通過定義額外的數(shù)據(jù)抽取規(guī) 則可抽取出這些數(shù)據(jù)記錄;
[0059] (4)點(diǎn)擊記錄網(wǎng)頁上的"名稱"超鏈(動作4)將跳轉(zhuǎn)到該商品數(shù)據(jù)記錄的詳細(xì)信 息頁面D,在細(xì)節(jié)頁面D中,可以抽取出書本的詳細(xì)信息(如出版社、頁數(shù)、語言和ISBN字 段);
[0060] (5)點(diǎn)擊記錄頁面上的"評論"超鏈(動作5)可以進(jìn)入評論頁面C,可以抽取評論 數(shù)據(jù)記錄,點(diǎn)擊頁面中"下一頁"(動作6)可以獲取全部的評論記錄;
[0061] (6)在記錄頁面中點(diǎn)擊"下一頁"(動作7)可以獲取全部的商品數(shù)據(jù)記錄。本發(fā) 明基于導(dǎo)航鏈接模型,提出了一種通用的Web自動瀏覽導(dǎo)航方法,包括第一步、構(gòu)建自動記 錄用戶訪問網(wǎng)頁導(dǎo)航鏈接一系列交互操作的導(dǎo)航鏈接模型;第二步、編譯生成實(shí)現(xiàn)回放該 一系列交互操作的可執(zhí)行指令。
[0062] 上述第一步的具體過程為
[0063] S1、建立Web自動瀏覽導(dǎo)航的頁面交互模型,所述頁面交互模型包括導(dǎo)航鏈接對 象和導(dǎo)航鏈接調(diào)用。所述導(dǎo)航鏈接對象包括導(dǎo)航鏈接ID,用于為此導(dǎo)航鏈接對象指定唯一 標(biāo)識符;至少一個導(dǎo)航控件描述,用于定義導(dǎo)航控件的名稱、類型和此導(dǎo)航控件在DOM樹上 的位置;描述此導(dǎo)航控件在DOM樹上的位置時,有兩種描述方法:⑴當(dāng)此導(dǎo)航控件的位置 靜態(tài)確定時,則記錄導(dǎo)航控件在DOM樹上的靜態(tài)位置;(2)當(dāng)此導(dǎo)航控件的位置在導(dǎo)航鏈接 對象被調(diào)用時才能確定時,則此導(dǎo)航控件在DOM樹上的位置為空值,當(dāng)導(dǎo)航鏈接對象被調(diào) 用執(zhí)行時進(jìn)行設(shè)置。一個目標(biāo)頁面描述,用于定義跳轉(zhuǎn)后的目標(biāo)頁面的ID和特征。
[0064] 所述導(dǎo)航鏈接調(diào)用包括調(diào)用導(dǎo)航鏈接ID,所述調(diào)用導(dǎo)航鏈接ID與導(dǎo)航鏈接對象 中的導(dǎo)航鏈接ID對應(yīng),用于調(diào)用特定的導(dǎo)航鏈接對象;至少一個導(dǎo)航動作描述,用于定義 導(dǎo)航動作的控件名稱、要執(zhí)行的控件動作和控件參數(shù)值。導(dǎo)航動作描述中的控件參數(shù)值,有 兩種設(shè)定方法:(1)對于可靜態(tài)確定的參數(shù)值,則直接以value = "靜態(tài)參數(shù)值"的形式設(shè) 置;(2)對于無法靜態(tài)確定需要在執(zhí)行時刻動態(tài)傳入的參數(shù)值,則用value ="@形參名"來 指定一個形式參數(shù),然后在運(yùn)行時刻再將實(shí)際參數(shù)傳入。
[0065] 如圖4示例所示,頁面交互模塊由導(dǎo)航鏈接對象〈NavLink〉元素進(jìn)行定義,其中包 含導(dǎo)航控件描述和目標(biāo)頁面描述。導(dǎo)航鏈接調(diào)用模塊由〈LinkCall〉元素描述,其中將指定 完成一個所定義的導(dǎo)航鏈接跳轉(zhuǎn)所需要進(jìn)行的所有控件交互動作。
[0066] 圖4示例中描述了一個在搜索頁面上填寫一個搜索關(guān)鍵字、然后按壓"搜索"按 鈕跳轉(zhuǎn)到搜索結(jié)果頁面的導(dǎo)航鏈接對象和規(guī)則示例。其中,〈NavLink〉定義了兩個涉及到 的交互控件,一個是搜索輸入框searchTextBox,另一個是搜索按鈕searchButton ;然后在 Web數(shù)據(jù)抽取過程中當(dāng)需要在當(dāng)前的頁面模型中執(zhí)行這個鏈接跳轉(zhuǎn)時,則在導(dǎo)航鏈接調(diào)用 對象〈LinkCall〉中執(zhí)行相應(yīng)的兩個瀏覽動作:將需要搜索的關(guān)鍵字字符串設(shè)置到搜索框 searchTextBox中,然后按壓搜索按鈕searchButton引起從搜索頁面到搜索結(jié)果頁面的跳 轉(zhuǎn)。
[0067] 對一個Web網(wǎng)頁可以定義多個導(dǎo)航鏈接對象NavLink。NavLink描述規(guī)則的定義 如下:
[0068] 〈NavLink id >......〈/NavLink〉,其中id用來為這個導(dǎo)航鏈接指定一個標(biāo) 識符。
[0069] 然后,一個NavLink中可以包含一至多個涉及到的導(dǎo)航操作控件對象,它們都置 于〈NavControls〉元素中,每個導(dǎo)航操作控件對象定義形式為:
[0070] 〈NavControl id = " …" type = " …" xpath = " …"其中:
[0071] id :描述導(dǎo)航操作控件的名稱,如searchButton。
[0072] type :描述控件類型,如 TextBox、Button。
[0073] xpath :描述控件在DOM樹上的位置,以便在執(zhí)行時系統(tǒng)能夠能準(zhǔn)確訪問到這個控 件。此時有兩種情況。當(dāng)一個控件可以在靜態(tài)確定其位置時,則xpath將記錄這個靜態(tài)的 xpath值;而如果這個控件位置只能在導(dǎo)航鏈接調(diào)用執(zhí)行時刻才能確定時,則xpath將是一 個空值,留待導(dǎo)航鏈接調(diào)用執(zhí)行時刻使用一個專門的控件動作setXpath去動態(tài)進(jìn)行設(shè)置。 導(dǎo)航鏈接中這種動態(tài)xpath的一個典型示例是,循環(huán)點(diǎn)擊一組搜索結(jié)果記錄列表中每個商 品下的"detail"鏈接時,由于每個搜索結(jié)果頁面下的商品記錄數(shù)是變化的,同時每個商品 下"detail"超鏈對象的位置是隨著搜索結(jié)果列表中的出現(xiàn)次序變化的,因此,這種情形下, 這個detail超鏈的xpath值是無法靜態(tài)確定的,而只能在運(yùn)行時刻根據(jù)所得到的具體的商 品記錄去取出相應(yīng)的detail超鏈的xpath位置。
[0074] -個NavLink還需要指定跳轉(zhuǎn)到指定頁面后所對應(yīng)的目標(biāo)頁面模型文件是什么, 以便系統(tǒng)能取得對應(yīng)的正確的跳轉(zhuǎn)目標(biāo)頁面模型來處理所跳轉(zhuǎn)到的新的頁面。目標(biāo)頁面模 型定義形式如:
[0075] 〈TargetModel targetModelID = " " pageFeature = " "/>,其中:
[0076] targetModelID :指定目標(biāo)頁面模型ID。
[0077] pageFeature :設(shè)置目標(biāo)頁面特征,用于對多分支頁面選擇正確的頁面模型,如頁 面登錄后可能會跳轉(zhuǎn)到兩個不同的頁面,一個是登錄失敗時跳轉(zhuǎn)到登錄失敗出錯頁面,另 一個是正常登錄后進(jìn)入一個正常的目標(biāo)頁面。此時將需要在登錄頁面的導(dǎo)航鏈接中根據(jù)兩 個不同頁面的特征來選擇正確的頁面模型。頁面指紋的研究是一個難點(diǎn),一是如何選取有 效的指紋特征;二是如何在執(zhí)行過程中如何獲取新頁面的特征來確定選擇哪一個目標(biāo)頁面 模型。頁面指紋將是本文的后續(xù)研究工作之一。
[0078] -個導(dǎo)航鏈接NavLink定義完成后,在Web數(shù)據(jù)抽取處理過程中執(zhí)行這個導(dǎo)航鏈 接跳轉(zhuǎn)時,將需要逐個執(zhí)行其中所包含的每個導(dǎo)航控件動作。每個導(dǎo)航動作的定義形式 為:
[0079] 〈ControlAction control = " " action = " " value = " "/>,其中:
[0080] control :指定所要操作的控件名稱。
[0081] action :指定具體要執(zhí)行的控件動作,表1列出了導(dǎo)航中常涉及到的幾種控件及 其典型動作,其中mouseover和mouseout是兩類特殊的動作,因?yàn)槎鄶?shù)控件的這兩類動作 是沒有實(shí)際效果的,即它們不會引起頁面變化或發(fā)生頁面跳轉(zhuǎn),但對于anchor控件可能會 發(fā)生局部頁面刷新。
[0082] value :描述控件參數(shù)。對于某些包含參數(shù)的動作,則需要在執(zhí)行時刻指定具體的 參數(shù)值,如對于一個搜索文本框searchbox,執(zhí)行時需要傳入具體的搜索關(guān)鍵字參數(shù)值。此 時有兩種情況:對于可靜態(tài)確定的參數(shù)值,則直接以value = "靜態(tài)參數(shù)值"的形式設(shè)置, 而對于無法靜態(tài)確定、需要在執(zhí)行時刻動態(tài)傳入的參數(shù)值,則可用value ="@形參名"來指 定一個形式參數(shù),然后在運(yùn)行時刻再將實(shí)際參數(shù)傳入。導(dǎo)航空間及其典型的導(dǎo)航動作如表 1所示。
[0083] 表 1 :
[0084]
【權(quán)利要求】
1. 一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,按如下步驟進(jìn)行: 第一步、構(gòu)建自動記錄用戶訪問網(wǎng)頁導(dǎo)航鏈接一系列交互操作的導(dǎo)航鏈接模型; 第二步、編譯生成實(shí)現(xiàn)回放該一系列交互操作的可執(zhí)行指令; 上述第一步的具體過程為 51、 建立Web自動瀏覽導(dǎo)航的頁面交互模型,所述頁面交互模型包括導(dǎo)航鏈接對象和 導(dǎo)航鏈接調(diào)用, 所述導(dǎo)航鏈接對象包括導(dǎo)航鏈接ID,用于為此導(dǎo)航鏈接對象指定唯一標(biāo)識符;至少一 個導(dǎo)航控件描述,用于定義導(dǎo)航控件的名稱、類型和此導(dǎo)航控件在DOM樹上的位置;一個目 標(biāo)頁面描述,用于定義跳轉(zhuǎn)后的目標(biāo)頁面的ID和特征; 所述導(dǎo)航鏈接調(diào)用包括調(diào)用導(dǎo)航鏈接ID,所述調(diào)用導(dǎo)航鏈接ID與導(dǎo)航鏈接對象中的 導(dǎo)航鏈接ID對應(yīng),用于調(diào)用特定的導(dǎo)航鏈接對象;至少一個導(dǎo)航動作描述,用于定義導(dǎo)航 動作的控件名稱、要執(zhí)行的控件動作和控件參數(shù)值; 52、 根據(jù)頁面交互模型錄制用戶在Web頁面的動作,采集與頁面交互模型中匹配的信 息形成頁面交互規(guī)則; 53、 自動回放并執(zhí)行頁面交互規(guī)則,模擬用戶與Web頁面的交互操作,完成Web頁面的 自動瀏覽導(dǎo)航。
2. 根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S1中, 所述導(dǎo)航鏈接對象的導(dǎo)航控件描述中,描述此導(dǎo)航控件在DOM樹上的位置時,有兩種描述 方法:(1)當(dāng)此導(dǎo)航控件的位置靜態(tài)確定時,則記錄導(dǎo)航控件在DOM樹上的靜態(tài)位置;(2) 當(dāng)此導(dǎo)航控件的位置在導(dǎo)航鏈接對象被調(diào)用時才能確定時,則此導(dǎo)航控件在DOM樹上的位 置為空值,當(dāng)導(dǎo)航鏈接對象被調(diào)用執(zhí)行時進(jìn)行設(shè)置。
3. 根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S1中, 所述導(dǎo)航鏈接調(diào)用中導(dǎo)航動作描述中的控件參數(shù)值,有兩種設(shè)定方法:(1)對于可靜態(tài)確 定的參數(shù)值,則直接以"靜態(tài)參數(shù)值"的形式設(shè)置;(2)對于無法靜態(tài)確定需要在執(zhí)行時刻 動態(tài)傳入的參數(shù)值,則用形參名"來指定一個形式參數(shù),然后在運(yùn)行時刻再將實(shí)際參數(shù)傳 入。
4. 根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S1中, 所述導(dǎo)航鏈接調(diào)用中,還包括流程控制邏輯,所述流程控制邏輯包括循環(huán)控制邏輯和條件 控制邏輯。
5. 根據(jù)權(quán)利要求4所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,在循環(huán)控制 邏輯和條件控制邏輯中,控件的參數(shù)值通過參數(shù)列表獲得。
6. 根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S2中, 錄制過程中,采用自動和交互兩者結(jié)合的方式采集動作,自動方式為用戶在Web瀏覽界面 中進(jìn)行操作時,實(shí)時捕獲此頁面操作動作事件;交互方式為手工設(shè)置動作及參數(shù)。
7. 根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S3中, 執(zhí)行過程中,自動回放并執(zhí)行頁面交互規(guī)則之前,還包括步驟:對頁面交互規(guī)則進(jìn)行預(yù)編 譯,生成預(yù)編譯文件;對預(yù)編譯文件進(jìn)行編譯,生成可執(zhí)行文件。
8. 根據(jù)權(quán)利要求7所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,當(dāng)頁面交互 規(guī)則變化時,將頁面交互規(guī)則重新進(jìn)行預(yù)編譯和編譯后,才能執(zhí)行。
9.根據(jù)權(quán)利要求1所述的一種通用的Web自動瀏覽導(dǎo)航方法,其特征在于,步驟S2和 S3中,錄制和執(zhí)行規(guī)則時,人機(jī)交互界面包括 頁面模型視圖,用于顯示本頁面相關(guān)的頁面交互與瀏覽模型的內(nèi)容; 瀏覽器視圖,用于展現(xiàn)當(dāng)前的瀏覽器頁面; DOM樹結(jié)構(gòu)視圖,用于展示瀏覽器頁面對應(yīng)的DOM樹結(jié)構(gòu),在該樹中的節(jié)點(diǎn)上提供操作 菜單以幫助用戶完成交互式規(guī)則生成和檢查; 導(dǎo)航頁面鏈接關(guān)系視圖,用于對于一系列的導(dǎo)航頁面的鏈接關(guān)系進(jìn)行表示; 屬性視圖,用于對頁面模型視圖中的節(jié)點(diǎn)的屬性進(jìn)行顯示,并且可以提供一系列相關(guān) 的操作。
【文檔編號】G06F17/30GK104361093SQ201410665797
【公開日】2015年2月18日 申請日期:2014年11月19日 優(yōu)先權(quán)日:2014年11月19日
【發(fā)明者】黃宜華, 施生生, 王海濤, 王有志, 袁春風(fēng), 陳承志, 龍慶麟, 梁國輝 申請人:南京大學(xué), 廣州科騰信息技術(shù)有限公司