專利名稱:一種提取網(wǎng)頁頁面鏈接的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種提取網(wǎng)頁頁面鏈接的方法和裝置。
背景技術(shù):
傳統(tǒng)的網(wǎng)頁下載技術(shù)一般為直接下載原始的網(wǎng)頁內(nèi)容,這種下載方式易于造成頁面內(nèi)容的丟失。尤其是目前越來越多的網(wǎng)頁頁面采用了異步請(qǐng)求數(shù)據(jù)的方式,對(duì)于這類網(wǎng)頁,通過直接下載無法獲取網(wǎng)頁的全部?jī)?nèi)容,會(huì)遺漏一些關(guān)鍵鏈接及信息,因此需要對(duì)網(wǎng)頁進(jìn)行渲染,從渲染結(jié)果中獲得更加全面的網(wǎng)頁信息。渲染網(wǎng)頁的操作主要包括:創(chuàng)建矢量圖及位形,調(diào)整網(wǎng)頁色彩,制作按鈕、導(dǎo)航條及動(dòng)畫,利用濾鏡處理圖像等操作。采用頁面渲染技術(shù)后,能一定程度減少網(wǎng)頁下載時(shí)頁面鏈接的丟失,但仍存在一些問題。例如,雖然自動(dòng)渲染程序會(huì)解析并執(zhí)行網(wǎng)頁中的JavaScript腳本文件代碼,但是對(duì)于網(wǎng)頁中含有的需要鼠標(biāo)事件觸發(fā)才運(yùn)行的JavaScript代碼,自動(dòng)渲染程序無法執(zhí)行該代碼,導(dǎo)致頁面鏈接丟失。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的提取網(wǎng)絡(luò)(WEB)頁面鏈接的方法和裝置。依據(jù)本發(fā)明的一個(gè)方面,本發(fā)明實(shí)施例提供了一種提取網(wǎng)頁頁面鏈接的方法,包括:確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置;在確定的位置生成觸發(fā)控件的預(yù)定事件,以觸發(fā)控件發(fā)生變化;調(diào)用應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件;根據(jù)讀取到的所有控件得到提取出的頁面鏈接。其中,上述確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置包括:根據(jù)預(yù)先獲知的控件的坐標(biāo)信息定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。其中,在確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置之前,上述方法還包括:確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域;調(diào)用應(yīng)用接口在初始提取操作中讀取區(qū)域中網(wǎng)頁的所有控件;利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件,當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),將匹配出的控件的位置作為需要預(yù)定事件觸發(fā)的控件的位置。其中,上述方法還包括:當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),根據(jù)初始提取操作中讀取到的所有控件得到提取出的頁面鏈接。其中,在確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域之前,上述方法還包括:根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁;當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。其中,上述方法還包括:記錄加載網(wǎng)頁的瀏覽器所在進(jìn)程的進(jìn)程標(biāo)識(shí)ID ;監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。
其中,上述確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域包括:查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。
其中,上述利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配包括:
當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。
其中,上述利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配包括:
利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)讀取出的所有控件的控件名稱中都不存在關(guān)鍵字時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件;和/或,對(duì)區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)識(shí)別出的所有圖片中不存在目標(biāo)圖片時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件。
其中,上述在確定的位置生成觸發(fā)控件的預(yù)定事件包括:生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至控件。
其中,上述預(yù)定事件為鼠標(biāo)事件,上述觸發(fā)控件發(fā)生變化包括:觸發(fā)控件在瀏覽器文檔對(duì)象模型DOM樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接。
其中,上述調(diào)用應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件包括:調(diào)用用戶界面UI應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。
其中,上述根據(jù)初始提取操作中讀取到的所有控件得到提取出的頁面鏈接包括:刪除初始提取操作中讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接;
上述根據(jù)讀取到的所有控件得到提取出的頁面鏈接包括:刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。
依據(jù)本發(fā)明的另一個(gè)方面,本發(fā)明實(shí)施例提供了一種提取網(wǎng)頁頁面鏈接的裝置,包括:
控件位置確定單元,適于確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置;
控件觸發(fā)單元,適于在確定的位置生成觸發(fā)控件的預(yù)定事件,以觸發(fā)控件發(fā)生變化;
控件提取單元,適于調(diào)用應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件;
頁面鏈接獲得單元,適于根據(jù)讀取到的所有控件得到提取出的頁面鏈接。
其中,控件位置確定單元,適于根據(jù)預(yù)先獲知的控件的坐標(biāo)信息定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。其中,上述裝置還包括提取區(qū)域確定單元和控件匹配單元,該提取區(qū)域確定單元,適于確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域,則控件提取單元,適于調(diào)用應(yīng)用接口讀取區(qū)域中的所有控件;該控件匹配單元,適于利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件;控件位置確定單元,還適于當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),將匹配出的控件的位置作為需要預(yù)定事件觸發(fā)的控件的位置。其中,頁面鏈接獲得單元,還適于當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),根據(jù)初始提取操作中讀取到的所有控件得到提取出的頁面鏈接。其中,上述裝置還包括接收單元和網(wǎng)頁加載單元,該接收單元,適于接收輸入?yún)?shù);該網(wǎng)頁加載單元,適于根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁;提取區(qū)域確定單元,還適于當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。其中,上述裝置還包括:記錄單元,適于記錄加載網(wǎng)頁的瀏覽器所在進(jìn)程的進(jìn)程ID ;瀏覽器狀態(tài)監(jiān)測(cè)單元,適于監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。其中,提取區(qū)域確定單元,適于查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。其中,控件匹配單元,適于當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。其中,控件匹配單元,適于利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;和/或,對(duì)區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件。其中,控件觸發(fā)單元,適于生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至控件。其中,上述預(yù)定事件為鼠標(biāo)事件,控件觸發(fā)單元還適于觸發(fā)控件在瀏覽器文檔對(duì)象模型DOM樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接。其中,控件提取單元,適于調(diào)用用戶界面Π應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。其中,頁面鏈接獲得單元,還適于刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。本發(fā)明實(shí)施例對(duì)包含需要預(yù)定事件觸發(fā)的控件的網(wǎng)頁,通過自動(dòng)生成觸發(fā)該控件的預(yù)定事件,觸發(fā)該控件變化的技術(shù)手段,能夠在利用應(yīng)用接口提取頁面鏈接時(shí),動(dòng)態(tài)解析并執(zhí)行該控件對(duì)應(yīng)的JavaScript代碼,避免了由于無法運(yùn)行該控件對(duì)應(yīng)的JavaScript代碼造成的頁面鏈接的丟失,從而保證了提取出的頁面鏈接的完整性。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種提取網(wǎng)頁頁面鏈接的裝置;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的另一種提取網(wǎng)頁頁面鏈接的裝置;以及
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的頁面中受到觸發(fā)前的控件;
圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的頁面中受到觸發(fā)后的控件;
圖5示出了根據(jù)本發(fā)明又一個(gè)實(shí)施例的提取網(wǎng)頁頁面鏈接的方法流程圖6示出了應(yīng)用本方案的一個(gè)軟件更新平臺(tái)的運(yùn)行流程示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明一個(gè)實(shí)施例提供了一種提取頁面鏈接的裝置,參見圖1,包括:控件位置確定單元111、控件觸發(fā)單元112、控件提取單元113、頁面鏈接獲得單元114、提取區(qū)域確定單元115、控件匹配單元116、接收單元117、網(wǎng)頁加載單元118、記錄單元119和瀏覽器狀態(tài)監(jiān)測(cè)單元120。下面分別對(duì)這些單元進(jìn)行說明。
控件位置確定單元111適于確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置??丶恢么_定單元111可以至少通過下述三種方式來確定控件的位置:
方式一、直接定位
控件位置確定單元111適于根據(jù)預(yù)先獲知的控件的坐標(biāo)信息直接定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。
上述坐標(biāo)信息能夠直接指示控件在頁面中的位置,如坐標(biāo)信息可以為控件在頁面中的水平方向的坐標(biāo)值X、垂直方向的坐標(biāo)值Y,利用(X,Y)可以直接定位至控件所在的坐標(biāo)點(diǎn)。
具體執(zhí)行時(shí),由接收單元117接收輸入?yún)?shù),例如,該輸入?yún)?shù)中包括參數(shù)U。參數(shù)u指示需要執(zhí)行頁面鏈接提取的網(wǎng)絡(luò)(WEB)頁面的URL(統(tǒng)一資源定位符,UniformResource Locator)。
網(wǎng)頁加載單元118適于根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁。當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,控件位置確定單元111利用控件的坐標(biāo)信息定位控件在頁面中的位置,找出需要預(yù)定事件觸發(fā)的控件。
這種定位方式,比較適合于需要預(yù)定事件觸發(fā)的控件在頁面中位置固定的場(chǎng)景,能夠快速、準(zhǔn)確地確定出控件的位置。
對(duì)于在執(zhí)行頁面鏈接提取操作之前,不能預(yù)先獲知頁面中是否包括需要預(yù)定事件觸發(fā)的控件的場(chǎng)景,可以采用下述的方式二和方式三。在采用方式二和方式三時(shí),控件位置確定單元111需要結(jié)合提取區(qū)域確定單元115和控件匹配單元116運(yùn)行,可以理解,當(dāng)采用方式一時(shí),提取區(qū)域確定單元115和控件匹配單元116可以略去,參見圖2。
方式二、關(guān)鍵字匹配
在具體執(zhí)行時(shí),和方式一中相似,首先需要由接收單元117接收輸入?yún)?shù),例如,該輸入?yún)?shù)中包括參數(shù)U。參數(shù)u指示需要執(zhí)行頁面鏈接提取的WEB頁面的URL。
網(wǎng)頁加載單元118適于根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁。當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,由提取區(qū)域確定單元115確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。例如,提取區(qū)域確定單元115查找瀏覽器的顯示窗體,例如,在IE瀏覽器中,查找名稱為Internet Explorer-Server的窗體即得到瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。
在方式二中,在確定完上述區(qū)域后,需要利用控件提取單元113執(zhí)行一次初始提取操作,即調(diào)用應(yīng)用接口讀取區(qū)域中的所有控件。在控件被觸發(fā)后,控件提取單元113會(huì)再次讀取區(qū)域中的所有控件。
控件匹配單元116利用獲取到的目標(biāo)關(guān)鍵字對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件。控件名稱中通常會(huì)包括和關(guān)鍵字對(duì)應(yīng)的信息,控件匹配單元116利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)讀取出的所有控件的控件名稱中都不存在關(guān)鍵字時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件;
當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),控件位置確定單元111將匹配出的控件的位置作為需要預(yù)定事件觸發(fā)的控件的位置。
方式三、圖片匹配
方式三與方式二的處理方式基本相同,主要區(qū)別點(diǎn)在于,方式三中控件匹配單元116利用獲取到的目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件??丶ヅ鋯卧?16對(duì)區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)識(shí)別出的所有圖片中不存在目標(biāo)圖片時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件。
由于多數(shù)網(wǎng)頁的內(nèi)容變化或更新的速度較快,方式二和方式三提供了一種更加靈活地定位方式、能夠準(zhǔn)確定位出網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。
在進(jìn)行一次網(wǎng)頁內(nèi)容的提取操作時(shí),上述方式一至方式三可以同時(shí)使用,也可以任選其兩兩組合或擇一使用。
其中,上述控件匹配單元116使用的目標(biāo)關(guān)鍵字、目標(biāo)圖片可以至少通過下述兩種途徑獲得:
途徑一、通過接收單元117接收到的參數(shù)獲得。
接收單元117接收到的輸入?yún)?shù)除了上述參數(shù)u之外,還可以包括參數(shù)k,該參數(shù)k包括關(guān)鍵字和/或圖片。控件匹配單元116將輸入?yún)?shù)k中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。參數(shù)k中可以包括一個(gè)或多個(gè)關(guān)鍵字和/或圖片,例如,當(dāng)參數(shù)k中包括多個(gè)關(guān)鍵字時(shí),多個(gè)關(guān)鍵字之間可以用符號(hào)“ I ”分隔。在對(duì)于需要鼠標(biāo)事件觸發(fā)控件的場(chǎng)景,如需要鼠標(biāo)點(diǎn)擊onclick事件或鼠標(biāo)移動(dòng)onmouseover事件觸發(fā)的控件,關(guān)鍵字的一個(gè)示例就是控件名稱中的“立即下載”字符。需要時(shí),接收單元117接收到的輸入?yún)?shù)還可以包括參數(shù)O,該參數(shù)O指示提取出的頁面鏈接的存儲(chǔ)位置以及存儲(chǔ)方式,如將提取出的頁面鏈接按行分隔存儲(chǔ)至C: \ret.txt ;參數(shù)t,該參數(shù)t指示W(wǎng)EB頁面訪問的時(shí)間限制,如60秒,則當(dāng)頁面加載時(shí)間超過60秒時(shí),確認(rèn)頁面加載超時(shí)。途徑二、通過預(yù)設(shè)配置文件獲得。將關(guān)鍵字和/或圖片預(yù)設(shè)在系統(tǒng)的配置文件,則控件匹配單元116通過讀取該配置文件,即可獲得到目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。由于輸入?yún)?shù)能夠反映當(dāng)前場(chǎng)景的網(wǎng)頁渲染的實(shí)際需求,本發(fā)明實(shí)施例優(yōu)先采用途徑一獲取目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)無法通過途徑一獲取時(shí),如輸入?yún)?shù)中沒有包括關(guān)鍵字和/或圖片時(shí),再采用途徑二獲取目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。即控件匹配單元116當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。其中,由于大多數(shù)系統(tǒng)都支持同時(shí)運(yùn)行多個(gè)瀏覽器進(jìn)程的場(chǎng)景,為了能夠辨別出需要執(zhí)行頁面鏈接提取的瀏覽器網(wǎng)頁,上述裝置還包括記錄單元119。當(dāng)網(wǎng)頁加載單元118打開WEB頁面時(shí),該記錄單元119獲取該WEB頁面的瀏覽器進(jìn)程標(biāo)識(shí)(ID)。則瀏覽器狀態(tài)監(jiān)測(cè)單元120會(huì)監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。且提取區(qū)域確定單元115會(huì)查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。其中,上述的控件提取單元113調(diào)用用戶界面(User Interface, UI)應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。一個(gè)例子中,本發(fā)明實(shí)施例調(diào)用系統(tǒng)中的微軟動(dòng)態(tài)訪問(MicrosoftActiveAccessibility, MSAA)機(jī)制提供的 UI 接口(Interface)讀取瀏覽器顯示窗體內(nèi)的所有控件??丶|發(fā)單元112在確定的位置生成觸發(fā)控件的預(yù)定事件,以觸發(fā)控件發(fā)生變化。在執(zhí)行具體觸發(fā)操作時(shí),控件觸發(fā)單元112生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至控件。例如,當(dāng)預(yù)定事件為鼠標(biāo)事件時(shí),控件觸發(fā)單元112在監(jiān)測(cè)出的控件的位置生成onclick事件或onmouseover事件的觸發(fā)消息,將該觸發(fā)消息傳遞至控件,模擬鼠標(biāo)事件,從而觸發(fā)控件在瀏覽器文檔對(duì)象模型(Document Object Model, D0M)樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接,該頁面鏈接可以為URL。參見圖3,示出了頁面中受到觸發(fā)前的控件,該控件在瀏覽器頁面中顯示的名稱為“www.xxxx.com/productForPC.shtml#立即下載”,該控件為需要鼠標(biāo)事件觸發(fā)的控件,名稱中包含關(guān)鍵字“立即下載”。參見圖4,為頁面中受到觸發(fā)后的控件。通過生成觸發(fā)消息,模擬鼠標(biāo)點(diǎn)擊該控件,使該控件的DOM節(jié)點(diǎn)值變化為可以直接獲取資源的頁面鏈接(如URL),在圖4的示例中即變化為“D1 dir.XX.com/xxfile/xx/XX2012/XPlusDesktop4.4.exe”。米用傳統(tǒng)直接下載網(wǎng)頁內(nèi)容的方式或者現(xiàn)有的網(wǎng)頁渲染的方式是無法提取到圖4中示出的URL的。而本實(shí)施例的方案能夠提取出網(wǎng)頁中所有的URL,適用于所有WEB頁面的鏈接抽取需求。
頁面鏈接獲得單元114根據(jù)讀取到的所有控件得到提取出的頁面鏈接。對(duì)于采用上述方式一的控件定位方式的場(chǎng)景,在進(jìn)行頁面鏈接提取時(shí),只需調(diào)用控件提取單元讀取一次頁面,則頁面鏈接獲得單元114由這一次讀取中讀取到的數(shù)據(jù)得到提取出的頁面鏈接。對(duì)于采用上述方式二或方式三的場(chǎng)景,在進(jìn)行頁面鏈接提取時(shí),當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),僅需執(zhí)行初始提取操作,頁面鏈接獲得單元114根據(jù)初始提取操作獲得的數(shù)據(jù)得到提取出的頁面鏈接;當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),頁面鏈接獲得單元114需要調(diào)用控件提取單元兩次讀取頁面鏈接,則頁面鏈接獲得單元由后一次讀取中讀取到的數(shù)據(jù)中得到提取出的頁面鏈接。
并且,在方式一、方式二或方式三下,為了提取出的頁面鏈接中包含不必要的重復(fù)數(shù)據(jù)時(shí),頁面鏈接獲得單元114還會(huì)刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。
由上所述,本發(fā)明實(shí)施例對(duì)包含需要預(yù)定事件觸發(fā)的控件的網(wǎng)頁,通過自動(dòng)生成觸發(fā)該控件的預(yù)定事件,觸發(fā)該控件變化的技術(shù)手段,能夠在利用應(yīng)用接口提取頁面鏈接時(shí),動(dòng)態(tài)解析并執(zhí)行該控件對(duì)應(yīng)的JavaScript代碼,避免了由于無法運(yùn)行該控件對(duì)應(yīng)的JavaScript代碼造成的頁面鏈接的丟失,從而保證了提取出的頁面鏈接的完整性。
本發(fā)明又一個(gè)實(shí)施例還提供了一種提取網(wǎng)頁頁面鏈接的方法,參見圖5,包括如下處理:
S500:根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁。
本步驟中記錄加載網(wǎng)頁的瀏覽器所在進(jìn)程的進(jìn)程標(biāo)識(shí)(ID)。
S501:確定網(wǎng)頁在瀏覽器中加載完畢。
本步驟中監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。
執(zhí)行完步驟S501后,需要確定網(wǎng)頁中由預(yù)定事件觸發(fā)的控件的位置。
一種方式下,本實(shí)施例根據(jù)預(yù)先獲知的控件的坐標(biāo)信息直接定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。
另一種方式下,如圖5中所示,在步驟S502中先確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。
在步驟S502中查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。
S503:在初始提取操作中調(diào)用應(yīng)用接口讀取區(qū)域中的所有控件。
本步驟中調(diào)用UI應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。
S504:利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配。
上述獲取目標(biāo)關(guān)鍵字和/或目標(biāo)圖片的操作可以包括:當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。本步驟中通過匹配判斷是否存在需要預(yù)定事件觸發(fā)的控件,例如,利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)讀取出的所有控件的控件名稱中都不存在關(guān)鍵字時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件;和/或,對(duì)區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)識(shí)別出的所有圖片中不存在目標(biāo)圖片時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件。當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),將匹配出的控件的位置作為需要預(yù)定事件觸發(fā)的控件的位置。S505:當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),在確定的位置生成觸發(fā)控件的預(yù)定事件,以觸發(fā)控件發(fā)生變化,然后執(zhí)行步驟S507。在觸發(fā)控件變化時(shí),生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至控件,控件會(huì)根據(jù)該觸發(fā)消息發(fā)生變化。例如,當(dāng)上述預(yù)定事件為鼠標(biāo)事件時(shí),觸發(fā)控件在瀏覽器DOM樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接。S506:當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),根據(jù)初始提取操作中讀取到的所有控件,刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。S507:調(diào)用應(yīng)用接口再次讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件;根據(jù)讀取到的所有控件,刪除初始提取操作中讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。本發(fā)明方法實(shí)施例中各步驟的具體執(zhí)行方式可以參見本發(fā)明的裝置實(shí)施例,在此不再贅述。由上所述,本發(fā)明實(shí)施例對(duì)包含需要預(yù)定事件觸發(fā)的控件的網(wǎng)頁,通過自動(dòng)生成觸發(fā)該控件的預(yù)定事件,觸發(fā)該控件變化的技術(shù)手段,能夠在利用應(yīng)用接口提取頁面鏈接時(shí),動(dòng)態(tài)解析并執(zhí)行該控件對(duì)應(yīng)的JavaScript代碼,避免了由于無法運(yùn)行該控件對(duì)應(yīng)的JavaScript代碼造成的頁面鏈接的丟失,從而保證了提取出的頁面鏈接的完整性。參見圖6,示出了應(yīng)用本方案的一個(gè)軟件更新平臺(tái)的運(yùn)行流程示意圖。該軟件更新平臺(tái)包括種子調(diào)度器、url抓取器、html解析器、url過濾器、url檢測(cè)器、動(dòng)作處理器和數(shù)據(jù)庫(DB)。上述軟件更新平臺(tái)的輸入?yún)⒘繛樽远x的種子(沒有父頁面、關(guān)鍵字或域名的限制),軟件更新平臺(tái)將獲取到的種子存儲(chǔ)至數(shù)據(jù)庫中,通過獲取到的種子可以得到需要執(zhí)行頁面鏈接提取的網(wǎng)頁。數(shù)據(jù)庫根據(jù)存儲(chǔ)的種子信息維護(hù)一個(gè)種子調(diào)度隊(duì)列,當(dāng)出現(xiàn)新的種子時(shí),會(huì)自動(dòng)將新的種子添加至調(diào)度隊(duì)列中。種子調(diào)度器的輸入量為數(shù)據(jù)庫中種子的信息,如數(shù)據(jù)庫中新添加的種子信息,包括種子ID、ID屬性、調(diào)度時(shí)間間隔、檢測(cè)更新方式、解析方式、是否抓取、下次抓取時(shí)間、是否解析以及檢測(cè)更新和失敗的處理方式等。種子調(diào)度器的輸出為包含種子信息的xml格式的數(shù)據(jù)。
種子調(diào)度器實(shí)現(xiàn)了上述實(shí)施例中的接收單元、頁面加載單元、記錄單元和瀏覽器狀態(tài)監(jiān)測(cè)單元的功能。
url抓取器的輸入為種子調(diào)度器輸出的xml格式的數(shù)據(jù),url抓取器的輸出包含抓取到的html, js,xml,txt,ini的信息,并以xml的格式輸出。html解析器的輸入為url抓取器的輸出,html解析器通過輸入?yún)?shù)中定義的解析方式對(duì)url抓取器抓取出的頁面鏈接進(jìn)行解析,抽取出鏈接link(相當(dāng)于上述的控件),html解析器的輸出為含有抽取到links的 xml。
url抓取器和html解析器實(shí)現(xiàn)了上述提取區(qū)域確定單元和控件提取單元的功能。
url檢測(cè)器的輸入為html解析器的輸出;通過輸入?yún)?shù)中定義的檢測(cè)更新方式進(jìn)行檢查,檢查是否存在需要預(yù)定事件觸發(fā)的控件,url檢測(cè)器的輸出為含有檢測(cè)結(jié)果的xml格式的數(shù)據(jù)。url檢測(cè)器實(shí)現(xiàn)了上述控件匹配單元的功能。
動(dòng)作處理器根據(jù)檢測(cè)結(jié)果進(jìn)行處理。例如,當(dāng)檢測(cè)結(jié)果指示網(wǎng)頁中存在需要預(yù)定事件觸發(fā)的控件時(shí),動(dòng)作處理器生成觸發(fā)所述控件的預(yù)定事件,以觸發(fā)所述控件發(fā)生變化,然后,動(dòng)作處理器調(diào)用url抓取器和html解析器再次抽取頁面中的url,并用再次抽取到的url更新數(shù)據(jù)庫。當(dāng)檢測(cè)結(jié)果指示網(wǎng)頁中不存在需要預(yù)定事件觸發(fā)的控件時(shí),動(dòng)作處理器將url檢測(cè)器輸出的url信息作為提取出的頁面中的url并上報(bào)至數(shù)據(jù)庫。
動(dòng)作處理器實(shí)現(xiàn)了上述控件位置確定單元、控件觸發(fā)單元和頁面鏈接獲得單元的功能。
上述軟件更新平臺(tái)還提供數(shù)據(jù)包下載功能,平臺(tái)中設(shè)置有查詢接口,通過該查詢接口可以從數(shù)據(jù)庫中下載數(shù)據(jù)包,可以方便地銜接到新的下載和解包模塊。該平臺(tái)中還可以設(shè)置管理中心,以對(duì)平臺(tái)中各器件進(jìn)行管理和運(yùn)維。
上述軟件更新平臺(tái)中各器件之間通過gearman進(jìn)行數(shù)據(jù)傳遞,通過gearman實(shí)現(xiàn)多機(jī)抓取、多機(jī)解析和多機(jī)檢測(cè),實(shí)現(xiàn)種子調(diào)度器、url抓取器、url解析器、url過濾器、url檢測(cè)器和動(dòng)作處理器之間的解耦合。各器件的數(shù)據(jù)可以存儲(chǔ)至數(shù)據(jù)庫,一直保留下來,以便回查和統(tǒng)計(jì)。另外,平臺(tái)可以通過輸入?yún)?shù)自定義種子或者軟件的檢測(cè)時(shí)間間隔和種子檢測(cè)的方式,具有較高的靈活性。
本發(fā)明實(shí)施例公開了以下的裝置:
A、本實(shí)施例中,所述控件位置確定單元,適于根據(jù)預(yù)先獲知的控件的坐標(biāo)信息定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。
B、本實(shí)施例中,所述裝置還包括提取區(qū)域確定單元和控件匹配單元,
所述提取區(qū)域確定單元,適于確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域;
所述控件提取單元,適于調(diào)用應(yīng)用接口讀取所述區(qū)域中的所有控件;
所述控件匹配單元,適于利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件。
所述控件位置確定單元,還適于當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),將匹配出的控件的位置作為所述需要預(yù)定事件觸發(fā)的控件的位置。
C、本實(shí)施例中,所述頁面鏈接獲得單元,還適于當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),根據(jù)所述初始提取操作中讀取到的所有控件得到提取出的頁面鏈接。D、本實(shí)施例中,所述裝置還包括接收單元和網(wǎng)頁加載單元,所述接收單元,適于接收輸入?yún)?shù);所述網(wǎng)頁加載單元,適于根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的URL在瀏覽器中加載網(wǎng)頁;所述提取區(qū)域確定單元,還適于當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。E、本實(shí)施例中,所述裝置還包括:記錄單元,適于記錄加載所述網(wǎng)頁的瀏覽器所在進(jìn)程的進(jìn)程標(biāo)識(shí)ID ;瀏覽器狀態(tài)監(jiān)測(cè)單元,適于監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)所述顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。F、本實(shí)施例中,所述提取區(qū)域確定單元,適于查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。G、本實(shí)施例中,所述控件匹配單元,適于當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。H、本實(shí)施例中,所述控件匹配單元,適于利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;和/或,對(duì)所述區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出所述區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件。1、本實(shí)施例中,所述控件觸發(fā)單元,適于生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至所述控件。J、本實(shí)施例中,所述預(yù)定事件為鼠標(biāo)事件,所述控件觸發(fā)單元,還適于觸發(fā)控件在瀏覽器文檔對(duì)象模型DOM樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接。K、本實(shí)施例中,所述控件提取單元,適于調(diào)用用戶界面Π應(yīng)用接口讀取所述網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。L、本實(shí)施例中,所述頁面鏈接獲得單元,還適于刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的提取網(wǎng)頁頁面鏈接的裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。
權(quán)利要求
1.一種提取網(wǎng)頁頁面鏈接的方法,包括: 確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置; 在所述確定的位置生成觸發(fā)所述控件的預(yù)定事件,以觸發(fā)所述控件發(fā)生變化; 調(diào)用應(yīng)用接口讀取所述網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件; 根據(jù)讀取到的所有控件得到提取出的頁面鏈接。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置包括: 根據(jù)預(yù)先獲知的控件的坐標(biāo)信息定位網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置。
3.根據(jù)權(quán)利要求1所述的方法,其中,在所述確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置之前,所述方法還包括: 確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域; 調(diào)用應(yīng)用接口在初始提取操作中讀取所述區(qū)域中網(wǎng)頁的所有控件; 利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配,判斷是否存在需要預(yù)定事件觸發(fā)的控件。
所述確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置包括: 當(dāng)頁面中存在需要預(yù)定事件觸發(fā)的控件時(shí),將匹配出的控件的位置作為所述需要預(yù)定事件觸發(fā)的控件的位置。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述方法還包括: 當(dāng)頁面中不存在需要預(yù)定事件觸發(fā)的控件時(shí),根據(jù)所述初始提取操作中讀取到的所有控件得到提取出的頁面鏈接。
5.根據(jù)權(quán)利要求3所述的方法,其中,在所述確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域之前,所述方法還包括: 根據(jù)接收到的輸入?yún)?shù)中的網(wǎng)頁的統(tǒng)一資源定位符URL在瀏覽器中加載網(wǎng)頁; 當(dāng)網(wǎng)頁在瀏覽器中加載完畢后,確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述方法還包括: 記錄加載所述網(wǎng)頁的瀏覽器所在進(jìn)程的進(jìn)程標(biāo)識(shí)ID ; 監(jiān)測(cè)記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的狀態(tài)欄中的顯示信息,當(dāng)所述顯示信息指示頁面加載完成時(shí),確認(rèn)網(wǎng)頁在瀏覽器中加載完畢。
7.根據(jù)權(quán)利要求6所述的方法,其中,所述確定網(wǎng)頁中需要執(zhí)行頁面鏈接提取的區(qū)域包括: 查找記錄的進(jìn)程ID所對(duì)應(yīng)的瀏覽器的顯示窗體,將網(wǎng)頁在顯示窗體中的區(qū)域確認(rèn)為需要執(zhí)行頁面鏈接提取的區(qū)域。
8.根據(jù)權(quán)利要求3所述的方法,其中,所述利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配包括: 當(dāng)接收到的輸入?yún)?shù)中包括關(guān)鍵字和/或圖片時(shí),將輸入?yún)?shù)中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片,當(dāng)接收到的輸入?yún)?shù)中不包括關(guān)鍵字和/或圖片時(shí),讀取預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片,將預(yù)設(shè)配置文件中的關(guān)鍵字和/或圖片作為獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片。
9.根據(jù)權(quán)利要求3所述的方法,其中,所述利用獲取到的目標(biāo)關(guān)鍵字和/或目標(biāo)圖片對(duì)初始提取操作中讀取到的控件進(jìn)行匹配包括: 利用一個(gè)或多個(gè)關(guān)鍵字對(duì)控件名稱進(jìn)行匹配,當(dāng)控件名稱中存在至少一個(gè)關(guān)鍵字時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)讀取出的所有控件的控件名稱中都不存在關(guān)鍵字時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件;和/或, 對(duì)所述區(qū)域中的網(wǎng)頁內(nèi)容進(jìn)行模式識(shí)別,識(shí)別出所述區(qū)域中所有圖片,利用一個(gè)或多個(gè)目標(biāo)圖片對(duì)識(shí)別出的圖片進(jìn)行匹配,當(dāng)識(shí)別出的圖片中存在至少一個(gè)目標(biāo)圖片時(shí),確認(rèn)匹配成功,將匹配成功的控件選取為需要預(yù)定事件觸發(fā)的控件;當(dāng)識(shí)別出的所有圖片中不存在目標(biāo)圖片時(shí),確認(rèn)匹配失敗,不存在需要預(yù)定事件觸發(fā)的控件。
10.根據(jù)權(quán)利要求1所述的方法,其中,所述在所述確定的位置生成觸發(fā)所述控件的預(yù)定事件包括: 生成預(yù)定事件的觸發(fā)消息,并將該觸發(fā)消息傳遞至所述控件。
11.根據(jù)權(quán)利要求1所述的方法,其中,所述預(yù)定事件為鼠標(biāo)事件,所述觸發(fā)控件發(fā)生變化包括: 觸發(fā)控件在瀏覽器文檔對(duì)象模型DOM樹結(jié)構(gòu)中的DOM節(jié)點(diǎn)值更新為可直接獲取資源的頁面鏈接。
12.根據(jù)權(quán)利要求1所述的方法,其中,所述調(diào)用應(yīng)用接口讀取所述網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件包括: 調(diào)用用戶界面Π應(yīng)用接口讀取所述網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件。
13.根據(jù)權(quán)利要求4所述的方法,其中, 所述根據(jù)所述初始提取操作中讀取到的所有控件得到提取出的頁面鏈接包括:刪除初始提取操作中讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接; 所述根據(jù)讀取到的所有控件得到提取出的頁面鏈接包括: 刪除讀取到的控件中的重復(fù)控件后,得到提取出的頁面鏈接。
14.一種提取網(wǎng)頁頁面鏈接的裝置,包括: 控件位置確定單元,適于確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置; 控件觸發(fā)單元,適于在所述確定的位置生成觸發(fā)所述控件的預(yù)定事件,以觸發(fā)所述控件發(fā)生變化; 控件提取單元,適于調(diào)用應(yīng)用接口讀取所述網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件; 頁面鏈接獲得單元,適于根據(jù)讀取到的所有控件得到提取出的頁面鏈接。
全文摘要
本發(fā)明公開了一種提取網(wǎng)頁頁面鏈接的方法和裝置。本發(fā)明實(shí)施例提供的一種提取網(wǎng)頁頁面鏈接的方法包括確定網(wǎng)頁中需要預(yù)定事件觸發(fā)的控件的位置;在確定的位置生成觸發(fā)控件的預(yù)定事件,以觸發(fā)控件發(fā)生變化;調(diào)用應(yīng)用接口讀取網(wǎng)頁中需要執(zhí)行頁面鏈接提取的所有控件;根據(jù)讀取到的所有控件得到提取出的頁面鏈接。
文檔編號(hào)G06F17/30GK103177115SQ20131011612
公開日2013年6月26日 申請(qǐng)日期2013年4月3日 優(yōu)先權(quán)日2013年4月3日
發(fā)明者徐銳波 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司