專利名稱:網(wǎng)頁訪問控制方法和裝置的制作方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)安全技術,尤其涉及一種網(wǎng)頁訪問控制方法和裝置。
背景技術:
隨著網(wǎng)絡技術的不斷進步,互聯(lián)網(wǎng)已成為人們?nèi)粘I畹闹匾M成部分,但是針對互聯(lián)網(wǎng)用戶的病毒傳播和入侵現(xiàn)象越來越多,嚴重影響了人們的日常生活。網(wǎng)站安全檢測是保障用戶正常使用互聯(lián)網(wǎng)的重要技術手段之一。在進行網(wǎng)站安全檢測過程中,有時需要控制瀏覽器訪問待測網(wǎng)頁,如需控制瀏覽器逐一打開待檢測的各網(wǎng)頁,以全面檢查這些網(wǎng)頁是否感染病毒或是否被植入木馬?,F(xiàn)有技術通常采用命令行的方式控制瀏覽器訪問指定網(wǎng)頁,例如可在以下命令行中直接調(diào)用IE瀏覽器,以打開網(wǎng)頁■· test, cn “C:\program files\Internet explorer > iexplore www.test.cn,,。采用上述命令行打開網(wǎng)頁之后,如果需要打開另一網(wǎng)頁,需要更改上述命令行中網(wǎng)頁地址的參數(shù),并重新執(zhí)行參數(shù)修改后的上述命令行。發(fā)明人在實踐現(xiàn)有技術的過程中發(fā)現(xiàn),采用命令行控制瀏覽器訪問網(wǎng)頁的現(xiàn)有技術,在需要打開多個網(wǎng)頁時,需要反復開啟和關閉IE瀏覽器,如果需要打開的網(wǎng)頁數(shù)量較多,則在開啟和關閉IE瀏覽器上會浪費大量時間,效率較低。
發(fā)明內(nèi)容
本發(fā)明提供一種網(wǎng)頁訪問控制方法和裝置,用以提高控制瀏覽器訪問待測網(wǎng)頁的效率。本發(fā)明提供一種網(wǎng)頁訪問控制方法,包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址;在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址, 用以控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。本發(fā)明還提供了一種網(wǎng)頁訪問控制裝置,包括初始化處理模塊,用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;第一控制模塊,用于通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址;第二控制模塊,用于在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以觸發(fā)所述第一控制模塊控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復運行本模塊,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。本發(fā)明提供的網(wǎng)頁訪問控制方法和裝置,將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部, 瀏覽器嵌入插件可從底層直接控制瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉瀏覽器,并且由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明實施例一提供的網(wǎng)頁訪問控制方法的流程圖;圖2為本發(fā)明實施例二提供的BHO插件獲取IE瀏覽器行為的方法示意圖;圖3為圖2中BHO插件的內(nèi)容示意圖;圖4為圖2中IE瀏覽器嵌入BHO插件的示意圖;圖5為本發(fā)明實施例三提供的通過在IE瀏覽器中嵌入BHO插件進行網(wǎng)頁訪問控制的方法流程圖;圖6為圖5中網(wǎng)頁元素的加載示例;圖7為圖5中句柄比較示例;圖8為本發(fā)明實施例四提供的網(wǎng)頁訪問控制裝置的結構示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有付出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。本發(fā)明以下實施例的序號僅僅為了描述,不代表實施例的優(yōu)劣。圖1為本發(fā)明實施例一提供的網(wǎng)頁訪問控制方法的流程圖。如圖1所示的方法包括步驟11 在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件。瀏覽器啟動時會檢查該瀏覽器注冊表中是否包括瀏覽器嵌入插件,并在瀏覽器注冊表中包括瀏覽器嵌入插件時,瀏覽器會自動啟動該瀏覽器嵌入插件,瀏覽器插件啟動后進行初始化。步驟12 通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址。網(wǎng)頁地址集包括了待測的各網(wǎng)頁地址。如果實際需要對某一網(wǎng)站進行全面安全檢測,本步驟中的網(wǎng)頁地址集可包括但不限于某一網(wǎng)站下各網(wǎng)頁地址以及每個網(wǎng)頁包括的鏈接地址等。在瀏覽器初始化完成之后,通過瀏覽器打開網(wǎng)頁地址集中的任一待測的網(wǎng)頁地址的方法不受限制,例如可向瀏覽器的地址欄中直接輸入該待測網(wǎng)頁地址,或者,可采用命令行的方式控制瀏覽器打開該待測網(wǎng)頁地址,或者,可通過瀏覽器嵌入插件在該瀏覽器對外開放的接口函數(shù)中寫入該待測網(wǎng)頁地址;等等。其中,可根據(jù)預設策略確定網(wǎng)頁地址集中的哪個待測的網(wǎng)頁地址作為第一個被瀏覽器打開的網(wǎng)頁地址。步驟13 在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。瀏覽器打開某一網(wǎng)頁地址對應的網(wǎng)頁之后,會加載該網(wǎng)頁的網(wǎng)頁內(nèi)容。如果瀏覽器完成該網(wǎng)頁所有網(wǎng)頁內(nèi)容的加載,則表示瀏覽器正常結束該網(wǎng)頁的網(wǎng)頁內(nèi)容的加載;如果某些網(wǎng)頁內(nèi)容復雜或存在錯誤,則瀏覽器可能耗費較長時間也不能完全加載該網(wǎng)頁內(nèi)容,則可強制結束瀏覽器對該網(wǎng)頁剩余內(nèi)容的記載。瀏覽器正常結束或被強制結束當前網(wǎng)頁內(nèi)容的加載時,可通過瀏覽器嵌入插件將網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址寫入該瀏覽器對外開放的接口函數(shù),以控制瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁。采用上述方法,即可通過瀏覽器嵌入插件按順序逐一將網(wǎng)頁地址集中的待測網(wǎng)頁地址寫入瀏覽器,并控制瀏覽器按順序逐一打開相應網(wǎng)頁。本實施例可將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部,瀏覽器嵌入插件可從底層直接控制瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉瀏覽器,并且由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。發(fā)明人在實踐現(xiàn)有技術的過程中發(fā)現(xiàn),不同網(wǎng)頁的內(nèi)容復雜性不同,瀏覽器打開較為復雜的網(wǎng)頁所需的時間較長,如果用戶只能主觀判斷該網(wǎng)頁的內(nèi)容是否完全加載完畢,就可能導致部分網(wǎng)頁已經(jīng)完全加載完成但用戶仍在等待,增加了檢測網(wǎng)頁所需的耗時; 或者,可能導致部分網(wǎng)頁沒有加載完全而被用戶關閉,進而影響了該網(wǎng)頁內(nèi)容的全面檢測。上述技術方案中,可在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針。為了有效判斷網(wǎng)頁內(nèi)容是否加載完畢,可選的,上述確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,可包括通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);在所述瀏覽器每次觸發(fā)與瀏覽器完成任一網(wǎng)頁元素加載相關的第二操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器插件解析所述回調(diào)函數(shù)以獲取當前記錄的所述第二句柄與所述第一句柄,且在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。采用該方法,瀏覽器嵌入插件就可自動判斷瀏覽器是否完成當前網(wǎng)頁內(nèi)容的加載,有利于待測網(wǎng)頁內(nèi)容的全面檢測;此外在瀏覽器完成當前網(wǎng)頁內(nèi)容的加載時,本發(fā)明還可及時控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。為了減少不必要等待時間,在上述技術方案的基礎上,本發(fā)明提供了加載超時控制機制,例如在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器;如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器。該情形下,所述強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,可具體包括如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。由于引入了加載超時控制機制,對于網(wǎng)頁內(nèi)容復雜或網(wǎng)頁錯誤等原因導致瀏覽器長時間不能完成相應網(wǎng)頁內(nèi)容的加載時,可取消剩余網(wǎng)頁內(nèi)容部分的加載,并控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而避免了用戶不必要的等待,整體上節(jié)省瀏覽器打開網(wǎng)頁地址集中各待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。圖2為本發(fā)明實施例二提供的BHO插件獲取IE瀏覽器行為的方法示意圖。本實施例是以IE為瀏覽器,以瀏覽器輔助對象(Browser HelperObject)插件為瀏覽器嵌入插件為例,詳細說明本發(fā)明的技術方案。BHO是微軟推出的作為瀏覽器對第三方程序員開放交互接口的業(yè)界標準,通過簡單的代碼就可以進入瀏覽器領域的“交互接口”(INTERACTIVED Interface) 0通過這個接口,程序員可以編寫代碼獲取瀏覽器的行為,比如“后退”、“前進”、“當前頁面”等,利用BHO 的交互特性,程序員還可以用代碼控制瀏覽器行為,比如修改替換瀏覽器工具欄,添加自己的程序按鈕等。BHO的目的是為了更好的幫助程序員打造個性化瀏覽器,以及為程序提供更簡潔的交互功能,現(xiàn)在很多IE個性化工具就是利用BHO的來實現(xiàn)。本實施例將BHO插件嵌入到IE瀏覽器內(nèi)部,BHO插件能夠監(jiān)控IE瀏覽器的行為, 當IE觸發(fā)預先設置的操作事件時,BHO可捕獲IE所觸發(fā)的操作事件并獲取與IE瀏覽器具體行為相關的信息。具體的如圖2所示,本實施例BHO獲取IE瀏覽器行為的方法包括步驟21 創(chuàng)建BHO插件,并將創(chuàng)建好的BHO插件嵌入到IE瀏覽器中。圖3為圖2中BHO插件的內(nèi)容示意圖。如圖3所示,BHO插件包括ΒΗ0初始化函數(shù)、BHO回調(diào)函數(shù)和BHO寫入注冊表。其中,初始化函數(shù)用于在被嵌入的IE瀏覽器啟動時自動啟動BHO插件并進行初始化處理;BHO回調(diào)函數(shù)用于控制IE瀏覽器在觸發(fā)預設的操作事件時作出預設響應;BHO寫入注冊表包括了幫助BHO控制IE瀏覽器所需的數(shù)據(jù)文件。圖4為圖2中IE瀏覽器嵌入BHO插件的示意圖??蓪?chuàng)建的BHO插件添加到IE 瀏覽器的注冊表中,如將BHO插件添加到IE瀏覽器的如下位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ffindows\CurrentVersion\ Explorer\Browser Helper Objects。步驟22 =IE瀏覽器啟動。步驟23 =IE瀏覽器啟動過程中發(fā)現(xiàn)IE瀏覽器注冊表中包括BHO插件,執(zhí)行步驟 24。
步驟M :IE瀏覽器調(diào)用BHO插件的初始化函數(shù),對BHO插件進行初始化處理。
在BHO插件的初始化過程中,IE瀏覽器通過調(diào)用BHO插件的初始化函數(shù),注冊BHO 插件回調(diào)函數(shù)的函數(shù)指針。這樣,當IE瀏覽器在運行過程中觸發(fā)與函數(shù)指針對應的操作事件時會調(diào)用相應回調(diào)函數(shù),將IE瀏覽器當前觸發(fā)的操作事件包括的參數(shù),寫入當前調(diào)用回調(diào)函數(shù)的相應參數(shù)中。BHO插件由此可獲知IE瀏覽器當前觸發(fā)的操作事件是什么,并且BHO 插件還可以獲取IE瀏覽器當前觸發(fā)的操作事件中包括的參數(shù)。步驟25 =IE瀏覽器根據(jù)外部指令執(zhí)行具體操作,如訪問某個網(wǎng)頁等。步驟沈當IE瀏覽器觸發(fā)預設的操作事件時,IE瀏覽器調(diào)用BHO回調(diào)函數(shù)。步驟27 =BHO插件根據(jù)被調(diào)用的BHO回調(diào)函數(shù)捕獲IE瀏覽器觸發(fā)的操作事件,并根據(jù)BHO回調(diào)函數(shù)的設置執(zhí)行相應操作。步驟28 =BHO回調(diào)函數(shù)執(zhí)行完畢,返回步驟25,BHO插件繼續(xù)監(jiān)控IE瀏覽器的行為。本實施例可將BHO插件嵌入到IE瀏覽器內(nèi)部,BHO插件可從底層直接控制IE瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉IE瀏覽器,并且由于BHO插件占用的內(nèi)存小, 運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率。圖5為本發(fā)明實施例三提供的通過在IE瀏覽器中嵌入BHO插件進行網(wǎng)頁訪問控制的方法流程圖。如圖5所示的方法包括步驟51 =IE瀏覽器打開網(wǎng)頁地址集中的某一網(wǎng)頁地址對應的網(wǎng)頁;并行執(zhí)行步驟 52 禾口 53。步驟52 =BHO插件啟動定時器;執(zhí)行步驟58。步驟53 =IE瀏覽器觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,調(diào)用BHO插件的回調(diào)函數(shù),并將該事件包括的與IE當前打開的網(wǎng)頁地址對應的第一句柄,寫入回調(diào)函數(shù)的相應參數(shù)。本實施例中,假設第一操作事件為DISPID_NAVIGATEC0MPLETE2事件,該事件是IE 瀏覽器如IE6、IE7、IE8和IE9中與即將加載網(wǎng)頁相關的標準操作事件。當IE瀏覽器每次打開任一網(wǎng)頁時,會觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,該事件表示IE瀏覽器即將加載當前打開該網(wǎng)頁的網(wǎng)頁內(nèi)容,該事件包括有操作系統(tǒng)如WINDOWS操作系統(tǒng)分配的用于標識當前網(wǎng)頁地址的第一句柄。步驟M =IE瀏覽器加載當前網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容。IE瀏覽器是以網(wǎng)頁元素為單元加載網(wǎng)頁內(nèi)容的,網(wǎng)頁元素的加載示例如圖6所示。例如網(wǎng)頁元素也稱為頁面元素,可為網(wǎng)頁中使用到的一切用于組織結構和表達內(nèi)容的對象,其中,網(wǎng)頁元素可包括組織結構中的表格(布局),層,導航條,鏈接等等;網(wǎng)頁元素還可包括表達內(nèi)容的文字,圖像,flash等等。每項網(wǎng)頁元素的具體內(nèi)容,根據(jù)不同瀏覽器的設置有所不同。步驟55 在IE瀏覽器每完成一項網(wǎng)頁元素的加載時,觸發(fā)DISPID_ D0CUMENTC0MPLETE事件,調(diào)用BHO插件的回調(diào)函數(shù),并將該事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入回調(diào)函數(shù)的相應參數(shù)。本實施例中,假設第二操作事件為DISPID_DOCUMENTCOMPLETE事件,該事件是IE 瀏覽器如IE6、IE7、IE8和IE9中完成任一網(wǎng)頁元素加載相關的標準操作事件。
如圖6所示,網(wǎng)頁元素之間存在嵌套關系。IE瀏覽器每次完成一項網(wǎng)頁元素的加載,都會觸發(fā)DISPID_NAVIGATEC0MPLETE2事件,該事件表示IE瀏覽器完成某一網(wǎng)頁元素加載,該事件包括有操作系統(tǒng)如WINDOWS操作系統(tǒng)分配的用于標識相應網(wǎng)頁元素加載完畢的
第二句柄。步驟56 =BHO插件對回調(diào)函數(shù)進行解析,獲取回調(diào)函數(shù)相應參數(shù)記錄的第一句柄和第二句柄;將當前獲取的第二句柄與第一句柄進行比較,如果二者一致,BHO插件確定IE 瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,執(zhí)行步驟57;否則,執(zhí)行步馬聚55 ο如果IE瀏覽器完成該網(wǎng)頁所有網(wǎng)頁元素的加載,其觸發(fā)的DISPID_ NAVIGATEC0MPLETE2 事件包括的第二句柄,就與 DISPID_NAVIGATEC0MPLETE2 事件包括的第一句柄相同;否則,二者不同?;诖嗽?,本實施例IE瀏覽器在觸發(fā)DISPID_ NAVIGATEC0MPLETE2事件時,將該事件包括的第二句柄寫入其調(diào)用的回調(diào)函數(shù)相應參數(shù); BHO插件在IE瀏覽器每次執(zhí)行回調(diào)函數(shù)的過程中,對回調(diào)函數(shù)進行解析,得到回調(diào)函數(shù)當前記錄的第一句柄和第二句柄,將首個第二句柄與第一句柄進行比較,根據(jù)比較結果確定當前網(wǎng)頁的網(wǎng)頁內(nèi)容是否加載完畢,其句柄比較示例如圖7所示。BHO插件可采用但不限于預設變量并對該變量賦值的方式,記錄第一句柄和第二句柄。在進行句柄比較時,相當于對該變量的不同參數(shù)進行比較。步驟57 :ΒΗ0插件取消定時器,并向IE瀏覽器的接口函數(shù)中寫入網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以控制IE瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁,執(zhí)行步驟 51。步驟58 在定時器沒有取消時,BHO插件以預設時長為間隔,定期將當前時刻與定時器設置的超時時刻進行比較如果當前時刻與定時器設置的超時時刻相同,BHO插件確定定時器超時,則執(zhí)行步驟59 ;否則重復執(zhí)行本步驟。步驟59 :ΒΗ0插件強制結束IE瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載;執(zhí)行步驟57。可選的,BHO插件可通過向IE瀏覽器發(fā)出結束網(wǎng)頁內(nèi)容加載的控制指令的方式, 強制結束IE瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。本實施例可將BHO插件嵌入到IE瀏覽器內(nèi)部,BHO插件可從底層直接控制IE瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉IE瀏覽器,并且由于嵌入IE瀏覽器的BHO 插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了 IE瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制IE瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。本實施例還可通過BHO插件對捕獲的兩類操作事件包括的句柄進行比較,能夠有效判斷網(wǎng)頁內(nèi)容是否加載完畢,有利于待測網(wǎng)頁內(nèi)容的全面檢測;本實施例還引入了超時控制機制來減少用戶不必要的等待時間,因此可及時控制IE瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。雖然本發(fā)明是以IE瀏覽器和BHO插件為應用實例詳細說明本發(fā)明的技術方案, 但需要說明的是,本發(fā)明的技術方案還可應用于其他瀏覽器及其支持嵌入的瀏覽器嵌入插件,例如火狐瀏覽器及其支持的嵌入插件,“Opera”瀏覽器及其支持的嵌入插件,“Chrome” 瀏覽器及其支持的嵌入插件,“Mfari”瀏覽器及其支持的嵌入插件等。
圖8為本發(fā)明實施例四提供的網(wǎng)頁訪問控制裝置的結構示意圖。如圖8所示的裝置包括初始化處理模塊81、第一控制模塊82和第二控制模塊83。初始化處理模塊81可用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件。第一控制模塊82可用于通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址。第二控制模塊83可用于在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以觸發(fā)所述第一控制模塊控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復運行本模塊,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。在上述技術方案的基礎上,所述初始化處理模塊81還可用于在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針??蛇x的,網(wǎng)頁訪問控制裝置還可包括第一捕獲處理模塊84、第二捕獲處理模塊85和加載完成確定模塊 86。第一捕獲處理模塊84可用于在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第一句柄。第二捕獲處理模塊85可用于通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第二句柄。加載完成確定模塊86可用于在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載??蛇x的,網(wǎng)頁訪問控制裝置還可包括定時模塊87、定時取消模塊88和加載取消模塊89。定時模塊87可用于在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器。定時取消模塊88可用于如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器。加載取消模塊89可用于如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。上述技術方案中,可選的,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象BHO插件;所述第一操作事件為“DISPID_NAVIGATEC0MPLETE2”事件;所述第二操作事件為“DISPID_DOCUMENTCOMPLETE”事件。此外,瀏覽器及其支持嵌入的瀏覽器嵌入插件,還可包括但不限于火狐瀏覽器及其支持的嵌入插件,“Opera”瀏覽器及其支持的嵌入插件,"Chrome"瀏覽器及其支持的嵌入插件,"Safari"瀏覽器及其支持的嵌入插件等。本實施例可將瀏覽器嵌入插件嵌入到瀏覽器內(nèi)部,瀏覽器嵌入插件可從底層直接控制瀏覽器需要訪問的網(wǎng)頁地址,不需要反復打開和關閉瀏覽器,并且由于嵌入瀏覽器的瀏覽器嵌入插件占用的內(nèi)存小,運行速度較快,因此明顯節(jié)省了瀏覽器訪問待測網(wǎng)頁地址對應網(wǎng)頁所需的時間,提高了控制瀏覽器訪問待測網(wǎng)頁的效率,進而有利于提高待測網(wǎng)頁的檢測效率。本實施例還可通過瀏覽器嵌入插件對捕獲的兩類操作事件包括的句柄進行比較,能夠有效判斷網(wǎng)頁內(nèi)容是否加載完畢,有利于待測網(wǎng)頁內(nèi)容的全面檢測;本實施例還引入了超時控制機制來減少用戶不必要的等待時間,因此可及時控制瀏覽器打開下一待測網(wǎng)頁地址對應的網(wǎng)頁,從而可節(jié)省大量時間,進一步提高了控制瀏覽器訪問待測網(wǎng)頁的效率。 本實施例提供的網(wǎng)頁地址的獲取裝置的運行機理,可參見上文圖1-圖7對應實施例的記載,在此不再贅述。本領域普通技術人員可以理解附圖只是一個實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領域普通技術人員可以理解實施例中的裝置中的模塊可以按照實施例描述分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。
權利要求
1.一種網(wǎng)頁訪問控制方法,其特征在于,包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件; 通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址; 在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。
2.根據(jù)權利要求1所述的方法,其特征在于,所述方法還包括在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針;確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,包括 在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);在所述瀏覽器每次觸發(fā)與瀏覽器完成任一網(wǎng)頁元素加載相關的第二操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器插件解析所述回調(diào)函數(shù)以獲取當前記錄的所述第二句柄,且在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述方法還包括在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器;如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器;所述強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,包括如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
4.根據(jù)權利要求1所述的方法,其特征在于,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象插件。
5.根據(jù)權利要求4所述的方法,其特征在于,所述第一操作事件為“DISPID_ NAVIGATEC0MPLETE2” 事件,所述第二操作事件為 “DISPID_DOCUMENTCOMPLETE” 事件。
6.一種網(wǎng)頁訪問控制裝置,其特征在于,包括初始化處理模塊,用于在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;第一控制模塊,用于通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址;第二控制模塊,用于在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以觸發(fā)所述第一控制模塊控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復運行本模塊,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。
7.根據(jù)權利要求6所述的裝置,其特征在于,還包括第一捕獲處理模塊、第二捕獲處理模塊和加載完成確定模塊;所述初始化處理模塊,還用于在所述瀏覽器嵌入插件初始化過程中,向所述瀏覽器中注冊瀏覽器嵌入插件的回調(diào)函數(shù)指針;所述第一捕獲處理模塊,用于在所述瀏覽器觸發(fā)與瀏覽器即將加載網(wǎng)頁相關的第一操作事件時,通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識當前打開的網(wǎng)頁地址的第一句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第一句柄;所述第二捕獲處理模塊,用于通過所述瀏覽器調(diào)用與所述回調(diào)函數(shù)指針指向的回調(diào)函數(shù)、并將所述第一操作事件包括的用于標識相應網(wǎng)頁元素加載完畢的第二句柄,寫入所述回調(diào)函數(shù)的相應參數(shù);通過所述瀏覽器嵌入插件解析所述回調(diào)函數(shù)以獲取所述第二句柄;;所述加載完成確定模塊,用于在當前獲取的所述第二句柄與所述第一句柄相同時,確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
8.根據(jù)權利要求6或7所述的裝置,其特征在于,還包括定時模塊,用于在所述瀏覽器打開任一網(wǎng)頁地址對應的網(wǎng)頁時,啟動定時器;定時取消模塊,用于如果在所述定時器定時時長內(nèi)確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載,則取消所述定時器;加載取消模塊,用于如果所述定時器超時,則通過所述瀏覽器嵌入插件,強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載。
9.根據(jù)權利要求6所述的裝置,其特征在于,所述瀏覽器為IE瀏覽器,所述瀏覽器嵌入插件為瀏覽器輔助對象插件。
10.根據(jù)權利要求9所述的裝置,其特征在于,所述第一操作事件為“DISPID_ NAVIGATEC0MPLETE2” 事件,所述第二操作事件為 “DISPID_DOCUMENTCOMPLETE” 事件。
全文摘要
本發(fā)明公開了一種網(wǎng)頁訪問控制方法和裝置,方法包括在瀏覽器啟動時,初始化所述瀏覽器預先嵌入的瀏覽器嵌入插件;通過所述瀏覽器打開預先獲取的網(wǎng)頁地址集中的首個待測的網(wǎng)頁地址;在確定所述瀏覽器完成關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時、或者在強制結束所述瀏覽器關于當前打開的網(wǎng)頁地址對應的網(wǎng)頁內(nèi)容的加載時,通過所述瀏覽器嵌入插件,向所述瀏覽器的接口函數(shù)中寫入所述網(wǎng)頁地址集中的下一個待測網(wǎng)頁地址,用以控制所述瀏覽器打開與寫入的網(wǎng)頁地址對應的網(wǎng)頁;重復執(zhí)行本步驟,直至控制所述瀏覽器打開所述網(wǎng)頁地址集中各待測網(wǎng)頁地址對應的網(wǎng)頁。本發(fā)明提高了控制瀏覽器訪問待測網(wǎng)頁的效率。
文檔編號G06F17/30GK102346781SQ20111031713
公開日2012年2月8日 申請日期2011年10月18日 優(yōu)先權日2011年10月18日
發(fā)明者崔福東, 邵晴, 高寧 申請人:北龍中網(wǎng)(北京)科技有限責任公司