一種網頁資源的嗅探方法以及裝置制造方法
【專利摘要】本發明公開一種網頁資源的嗅探方法以及裝置,所述方法包括:基于一網頁訪問指令,訪問第一網頁;構建所述第一網頁的文件對象模型DOM樹,并在構建所述DOM樹的過程中,對所述第一網頁中的第一資源標簽進行識別;基于識別出的所述第一資源標簽,獲取所述第一資源標簽對應的第一資源,并將所述第一資源呈現給用戶;監視所述DOM樹是否發生變化;在所述DOM樹發生變化且所述第一資源標簽變化為第二資源標簽時,獲取所述第二資源標簽對應的第二資源,并將所述第二資源呈現給用戶,其中,所述第二資源標簽與所述第一資源標簽不相同。
【專利說明】一種網頁資源的嗅探方法以及裝置
【技術領域】
[0001]本發明涉及互聯網【技術領域】,尤其涉及一種網頁資源的嗅探方法以及裝置。
【背景技術】
[0002]隨著互聯網技術的不斷發展,互聯網與人們日常生活的聯系越來越緊密,比如,人們可以通過互聯網下載各類資源,如視頻資源、音頻資源等等。
[0003]目前,網站所提供的網頁包括許多無關資源如廣告資源等等,從而會導致用戶浪費大量的時間與精力用于在網頁上可能提供資源的地方去尋找自己實際所需要的資源如某個特定軟件等等。
[0004]在現有技術中,為了節省用戶時間,網頁瀏覽軟件在打開某個網頁時,會進行資源嗅探,具體來講,會全局掃描網頁瀏覽軟件所獲取的網頁數據,并對網頁數據中的RAR、ZIP、MP4等關鍵字進行匹配,再通過使用正則表達式等算法判斷所匹配到的數據是否為資源網址,如果是資源網址則將這些網址記錄下來并呈現給用戶,從而避免用戶花費大量的時間與精力在網頁上去尋找自己所需要的資源。
[0005]但是,由于現有技術中在對網頁進行資源嗅探時,需要對網頁數據進行全文過濾,導致了效率低下以及匹配準確率不高,同時,無法獲取網頁通過JavaScriptCJava描述語言,一種腳本語言)動態獲得的資源鏈接地址。
[0006]因此,現有技術中在對網頁進行資源嗅探時,存在因需要對網頁數據進行全文過濾而造成的效率低下、以及無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題。
【發明內容】
[0007]本發明實施例通過提供一種網頁資源的嗅探方法以及裝置,解決了現有技術中在對網頁進行資源嗅探時,存在因需要對網頁數據進行全文過濾而造成的效率低下、以及無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題。
[0008]本發明實施例一方面提供一種網頁資源的嗅探方法,包括:
[0009]基于一網頁訪問指令,訪問第一網頁;
[0010]構建所述第一網頁的文件對象模型DOM樹,并在構建所述DOM樹的過程中,對所述第一網頁中的第一資源標簽進行識別;
[0011]基于識別出的所述第一資源標簽,獲取所述第一資源標簽對應的第一資源,并將所述第一資源呈現給用戶;
[0012]監視所述DOM樹是否發生變化;
[0013]在所述DOM樹發生變化且所述第一資源標簽變化為第二資源標簽時,獲取所述第二資源標簽對應的第二資源,并將所述第二資源呈現給用戶,其中,所述第二資源標簽與所述第一資源標簽不相同。
[0014]可選地,所述在構建所述第一網頁的文件對象模型DOM樹之前,所述方法還包括:獲取需要嗅探的資源類型。
[0015]可選地,所述獲取需要嗅探的資源類型,具體為:
[0016]獲取需要嗅探的通用資源類型和/或非通用資源類型。
[0017]可選地,所述對所述第一網頁中的第一資源標簽進行識別,具體為:
[0018]對所述第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,其中所述通用資源標簽與所述通用資源類型對應,所述非通用資源標簽與所述非通用資源類型對應。
[0019]可選地,在所述獲取所述第一資源標簽對應的第一資源之后,所述方法還包括:
[0020]將所述第一資源保存到哈希集合中,以確定所述第一資源的唯一性。
[0021]本發明實施例另一方面還提供一種網頁資源的嗅探裝置,包括:
[0022]訪問單元,用于基于一網頁訪問指令,訪問第一網頁;
[0023]構建單元,用于構建所述第一網頁的DOM樹;
[0024]第一識別單元,用于基于所述DOM樹,對所述第一網頁中的第一資源標簽進行識別;
[0025]第一獲取單元,用于基于識別出的所述第一資源標簽,獲取所述第一資源標簽對應的第一資源,并將所述第一資源呈現給用戶;
[0026]監視單元,用于監視所述DOM樹是否發生變化;
[0027]所述第一獲取單元還用于在所述監視單元確定所述DOM樹發生變化且所述第一資源標簽變化為第二資源標簽時,獲取所述第二資源標簽對應的第二資源,并將所述第二資源呈現給用戶,其中,所述第二資源標簽與所述第一資源標簽不相同。
[0028]可選地,所述裝置還包括第二獲取單元,所述第二獲取單元用于在所述構建所述第一網頁的文件對象模型DOM樹之前,獲取需要嗅探的資源類型。
[0029]可選地,所述第二獲取單元具體用于獲取需要嗅探的通用資源類型和/或非通用資源類型。
[0030]可選地,所述構建單元具體用于對所述第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,其中,所述通用資源標簽與所述通用資源類型對應,所述非通用資源標簽與所述非通用資源類型對應。
[0031]可選地,所述裝置還包括保存單元,所述保存單元用于在所述獲取所述第一資源標簽對應的第一資源之后,將所述第一資源保存到哈希集合中,以確定所述第一資源的唯一性。
[0032]本發明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優點:
[0033]1、由于采用了在訪問第一網頁時,構建第一網頁的文件對象模型DOM樹,并基于DOM樹,對第一網頁中的第一資源標簽進行識別,并基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶的技術方案,不需要對第一網頁的網頁數據進行全部過濾,從而解決了現有技術中因需要對網頁數據進行全文過濾而造成的效率低下的技術問題,提高了在對網頁進行資源嗅探時的效率。
[0034]2、由于采用了監視DOM樹是否發生變化,并在DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶的技術方案,避免了現有技術中無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題,實現了及時地、動態地抓取第一網頁中的資源的技術效果。
【專利附圖】
【附圖說明】
[0035]圖1為本發明實施例提供的網頁資源的嗅探方法的流程圖;
[0036]圖2為本發明實施例提供的網頁資源的嗅探裝置的功能模塊圖。
【具體實施方式】
[0037]本發明實施例通過提供一種網頁資源的嗅探方法以及裝置,解決了現有技術中在對網頁進行資源嗅探時,存在因需要對網頁數據進行全文過濾而造成的效率低下、以及無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題。
[0038]本發明實施例中的技術方案為解決上述技術問題,總體思路如下:
[0039]本發明實施例提供一種網頁資源的嗅探方法,包括:
[0040]首先,基于一網頁訪問指令,訪問第一網頁;
[0041]其次,構建第一網頁的文件對象模型DOM樹,并基于DOM樹,對第一網頁中的第一資源標簽進行識別;
[0042]接著,基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶;
[0043]然后,監視DOM樹是否發生變化;
[0044]最后,在DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶,其中,第二資源標簽與第一資源標簽不相同。
[0045]通過上述部分可以看出,由于采用了在訪問第一網頁時,構建第一網頁的文件對象模型DOM樹,并基于DOM樹,對第一網頁中的第一資源標簽進行識別,并基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶的技術方案,不需要對第一網頁的網頁數據進行全部過濾,從而解決了現有技術中因需要對網頁數據進行全文過濾而造成的效率低下的技術問題,提高了在對網頁進行資源嗅探時的效率。
[0046]進一步地,由于采用了監視DOM樹是否發生變化,并在DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶的技術方案,避免了現有技術中無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題,實現了及時地、動態地抓取第一網頁中的資源的技術效果。
[0047]為了更好的理解上述技術方案,下面將結合說明書附圖以及具體的實施方式對上述技術方案進行詳細的說明。
[0048]請參考圖1,圖1是本發明實施例提供的網頁資源的嗅探方法的流程圖,如圖1所示,該方法包括:
[0049]SlOl:基于一網頁訪問指令,訪問第一網頁;
[0050]S102:構建第一網頁的文件對象模型(英文:Document Object Model ;簡稱:D0M)樹,并在構建DOM樹的過程中,對第一網頁中的第一資源標簽進行識別;
[0051]S103:基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶;
[0052]S104:監視DOM樹是否發生變化;
[0053]S105:在DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶,其中,第二資源標簽與第一資源標簽不相同。
[0054]在實際應用中,本發明實施例提供的網頁資源的嗅探方法可以應用于專門提供網頁瀏覽功能的網頁瀏覽軟件如瀏覽器上,也可以應用于集成了網頁瀏覽功能的多功能軟件上,在此不做限制。
[0055]在接下來的部分中,將以本發明實施例提供的網頁資源的嗅探方法可以應用在一瀏覽器上為例,來進行詳細地舉例描述。
[0056]在SlOl中,可以是指瀏覽器根據用戶輸入的網頁訪問指令,來訪問第一網頁,具體來講,可以是瀏覽器根據用戶向瀏覽器輸入第一網頁的網頁地址來訪問該第一網頁,或者瀏覽器根據用戶點擊某個鏈接的點擊操作而訪問第一網頁,在此就不再贅述了。當然,在實際應用中,訪問第一網頁的具體過程不限于本發明實施例所介紹的兩種方式。
[0057]在具體實施過程中,在S102之前,本發明實施例提供的網頁資源的嗅探方法還包括:獲取需要嗅探的資源類型。
[0058]具體來講,可以是瀏覽器獲取需要嗅探的資源類型為通用資源類型和/或非通用資源類型,也即瀏覽器確定需要嗅探哪些資源,如音頻資源、視頻資源等等通用資源類型,或者是如迅雷、電驢或比特種子等下載軟件的非通用資源類型等等,在具體實施過程中,瀏覽器可以從服務器上獲取需要嗅探的資源類型列表,從而確定需要對第一網頁中的哪些資源類型進行嗅探,或者也可以從根據用戶輸入的資源類型來確定需要對第一網頁中的哪些資源進行嗅探。
[0059]需要說明的是,在具體實施過程中,獲取需要嗅探的資源類型可以在瀏覽器訪問不同的網頁時每次都被執行,也可以在瀏覽器一次運行(指瀏覽器從運行到關閉)過程中只被執行一次,在此就不再贅述了。
[0060]在S102中,構建第一網頁的文件對象模型DOM樹,并在構建DOM樹的過程中,對第一網頁中的第一資源標簽進行識別,具體來講,可以通過DOM解析器對第一網頁進行解析,從而能夠生成第一網頁對應的DOM樹。
[0061]需要說明的是,該DOM樹中的所有節點都是從Node對象(Node對象是整個DOM的主要數據類型)繼承而來的,Node對象定義了一些基本的屬性和方法,利用這些方法可以實現對DOM樹的遍歷,同時,根據屬性還可以得知節點的名稱、取值并判斷其類型。當然,不同解析器的實現方法也可能有所差別,在此就不再贅述了。
[0062]在構建第一網頁的DOM樹的過程中,同時對第一網頁中的第一資源標簽進行識另IJ,具體來講,即是瀏覽器對第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,通用資源標簽與通用資源類型對應,通用資源標簽例如可以是聲頻資源標簽(〈aud1〉)、視頻資源標簽(〈video〉)、內聯元素標簽(<a>)等等,非通用資源標簽和非通用資源類型對應,非通用資源標簽例如可以是迅雷資源標簽(〈thunderhref〉)、以及其他如電驢、比特種子等下載軟件所使用的資源標簽等等,在構建第一網頁的DOM樹的過程中,即能夠根據前述步驟中所獲取到的需要嗅探的資源類型,對第一網頁中與該資源類型對應的資源標簽進行識別。例如,當前述步驟中獲取到的需要嗅探的資源類型為通用資源類型和非通用資源類型時,瀏覽器會對第一網頁中的聲頻資源標簽(〈aud1〉)、視頻資源標簽(〈video〉)、內聯元素標簽(<a>)以及迅雷資源標簽(〈thunderhref〉)等等通用資源標簽和非通用資源標簽同時進行識別。
[0063]在S102之后,本發明實施例提供的網頁資源的嗅探方法進入S103,即:基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶。
[0064]在S103中,具體來講,即是根據S102中識別出的第一資源標簽,從而能夠獲取第一資源標簽對應的第一資源,并將第一資源信息發送給瀏覽器的上層,通過用戶交互(UI)層呈現給用戶。當然,在實際應用中,此時瀏覽器向用戶呈現的可以是第一資源對應的鏈接,由用戶確認需要獲取哪個資源。
[0065]通過上述部分可以看出,由于利用了構建第一網頁的DOM樹的過程對第一網頁進行了資源嗅探,而不用對第一網頁的網頁數據進行全文過濾,節省了不必要的處理器的資源浪費,并且節省了時間,從而提高了在對網頁進行資源嗅探的效率。
[0066]當然,在具體實施過程中,為了避免從第一網頁中嗅探出的資源重復,本發明實施例提供的網頁資源的嗅探方法還包括:將第一資源保存到哈希集合(HashSet)中,以確定第一資源的唯一'I"生。
[0067]具體來講,即是將第一資源保存于一設定的HashSet中,HashSet中不允許有重復的元素存在,所以能夠保證資源的唯一性,在此就不再贅述了。
[0068]在S103之后,本發明實施例提供的網頁資源的嗅探方法進入S104,即:監視DOM樹是否發生變化。
[0069]在S104中,具體來講,即是監視第一網頁中的第一資源標簽是否發生變化。
[0070]在第一網頁的DOM樹發生變化且第一資源標簽變化為第二資源標簽時,本發明實施例提供的網頁資源的嗅探方法進入S105,即:獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶,其中,第二資源標簽與第一資源標簽不相同。
[0071]在S105中,具體來講,在Javascript新增了或者修改了第一網頁中的資源鏈接時,第一網頁的DOM樹即會發生變化,第一資源標簽同時會變化為第二資源標簽,此時即可以根據第二資源標簽來獲取第二資源標簽對應的第二資源,并且將第二資源呈現給用戶。
[0072]當然了,如前述步驟所介紹的,在獲取第二資源后,同樣可以將第二資源保存于哈希集合中,在此就不再贅述了。
[0073]基于同一發明構思,本發明實施例還提供一種網頁資源的嗅探裝置,請參考圖2,圖2是本發明實施例提供的網頁資源的嗅探裝置的功能模塊圖,如圖2所示,該裝置包括:
[0074]訪問單元201,用于基于一網頁訪問指令,訪問第一網頁;
[0075]構建單元202,用于構建第一網頁的DOM樹;
[0076]第一識別單元203,用于基于DOM樹,對第一網頁中的第一資源標簽進行識別;
[0077]第一獲取單元204,用于基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶;
[0078]監視單元205,用于監視DOM樹是否發生變化;
[0079]第一獲取單元204還用于在監視單元205確定DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶,其中,第二資源標簽與第一資源標簽不相同。
[0080]在具體實施過程中,該裝置還包括第二獲取單元206,第二獲取單元206用于在構建第一網頁的文件對象模型DOM樹之前,獲取需要嗅探的資源類型。
[0081]在具體實施過程中,第二獲取單元206具體用于獲取需要嗅探的通用資源類型和/或非通用資源類型。
[0082]在具體實施過程中,第一識別單元203具體用于對所述第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,其中,通用資源標簽與通用資源類型對應,非通用資源標簽與非通用資源類型對應。
[0083]在具體實施過程中,該裝置還包括保存單元207,用于在獲取第一資源標簽對應的第一資源之后,將第一資源保存到哈希集合中,以確定第一資源的唯一性。
[0084]本實施例中的網頁資源的嗅探裝置與前述部分中的網頁資源的嗅探方法是基于同一發明構思下的兩個方面,在前面已經對方法的實施過程作了詳細的描述,所以本領域技術人員可根據前述描述清楚的了解本實施例中的網頁資源的嗅探裝置的結構及實施過程,為了說明書的簡潔,在此就不再贅述了。
[0085]上述本發明實施例中的技術方案,至少具有如下的技術效果或優點:
[0086]1、由于采用了在訪問第一網頁時,構建第一網頁的文件對象模型DOM樹,并基于DOM樹,對第一網頁中的第一資源標簽進行識別,并基于識別出的第一資源標簽,獲取第一資源標簽對應的第一資源,并將第一資源呈現給用戶的技術方案,不需要對第一網頁的網頁數據進行全部過濾,從而解決了現有技術中因需要對網頁數據進行全文過濾而造成的效率低下的技術問題,提高了在對網頁進行資源嗅探時的效率。
[0087]2、由于采用了監視DOM樹是否發生變化,并在DOM樹發生變化且第一資源標簽變化為第二資源標簽時,獲取第二資源標簽對應的第二資源,并將第二資源呈現給用戶的技術方案,避免了現有技術中無法獲取網頁通過JavaScript動態獲得的資源鏈接地址的技術問題,實現了及時地、動態地抓取第一網頁中的資源的技術效果。
[0088]本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
[0089]本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0090]這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0091]這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0092]顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
【權利要求】
1.一種網頁資源的嗅探方法,其特征在于,包括: 基于一網頁訪問指令,訪問第一網頁; 構建所述第一網頁的文件對象模型DOM樹,并在構建所述DOM樹的過程中,對所述第一網頁中的第一資源標簽進行識別; 基于識別出的所述第一資源標簽,獲取所述第一資源標簽對應的第一資源,并將所述第一資源呈現給用戶; 監視所述DOM樹是否發生變化; 在所述DOM樹發生變化且所述第一資源標簽變化為第二資源標簽時,獲取所述第二資源標簽對應的第二資源,并將所述第二資源呈現給用戶,其中,所述第二資源標簽與所述第一資源標簽不相同。
2.如權利要求1所述的方法,其特征在于,所述在構建所述第一網頁的文件對象模型DOM樹之前,所述方法還包括: 獲取需要嗅探的資源類型。
3.如權利要求2所述的方法,其特征在于,所述獲取需要嗅探的資源類型,具體為: 獲取需要嗅探的通用資源類型和/或非通用資源類型。
4.如權利要求3所述的方法,其特征在于,所述對所述第一網頁中的第一資源標簽進行識別,具體為: 對所述第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,其中,所述通用資源標簽與所述通用資源類型對應,所述非通用資源標簽與所述非通用資源類型對應。
5.如權利要求1所述的方法,其特征在于,在所述獲取所述第一資源標簽對應的第一資源之后,所述方法還包括: 將所述第一資源保存到哈希集合(HashSet)中,以確定所述第一資源的唯一性。
6.一種網頁資源的嗅探裝置,其特征在于,包括: 訪問單元,用于基于一網頁訪問指令,訪問第一網頁; 構建單兀,用于構建所述第一網頁的DOM樹; 第一識別單元,用于基于所述DOM樹,對所述第一網頁中的第一資源標簽進行識別;第一獲取單元,用于基于識別出的所述第一資源標簽,獲取所述第一資源標簽對應的第一資源,并將所述第一資源呈現給用戶; 監視單元,用于監視所述DOM樹是否發生變化; 所述第一獲取單元還用于在監視單元確定所述DOM樹發生變化且所述第一資源標簽變化為第二資源標簽時,獲取所述第二資源標簽對應的第二資源,并將所述第二資源呈現給用戶,其中,所述第二資源標簽與所述第一資源標簽不相同。
7.如權利要求6所述的裝置,其特征在于,所述裝置還包括第二獲取單元,所述第二獲取單元用于在所述構建所述第一網頁的文件對象模型DOM樹之前,獲取需要嗅探的資源類型。
8.如權利要求7所述的裝置,其特征在于,所述第二獲取單元具體用于獲取需要嗅探的通用資源類型和/或非通用資源類型。
9.如權利要求6所述的裝置,其特征在于,所述第一識別單元具體用于對所述第一網頁中的通用資源標簽和/或非通用資源標簽進行識別,其中,所述通用資源標簽與所述通用資源類型對應,所述非通用資源標簽與所述非通用資源類型對應。
10.如權利要求6所述的裝置,其特征在于,所述裝置還包括保存單元,所述保存單元用于在所述獲取所述第一資源標簽對應的第一資源之后,將所述第一資源保存到哈希集合中,以確定所述第一資源的唯一性。
【文檔編號】G06F17/30GK104166545SQ201410361637
【公開日】2014年11月26日 申請日期:2014年7月25日 優先權日:2014年7月25日
【發明者】張偉, 陳晨, 張錚, 齊彥鵬 申請人:北京搜狗科技發展有限公司