M樹展示了節(jié)點的集合,以及它們之間的聯(lián)系。這棵樹從根節(jié)點開始,然后在樹的最低層級向文本節(jié)點長出枝條。DOM樹中的節(jié)點彼此之間都有等級關(guān)系,通常通過父、子和同級節(jié)點來描述這種關(guān)系。父節(jié)點擁有子節(jié)點,位于相同層級上的子節(jié)點稱為同級節(jié)點(兄弟或姐妹)。
[0088]在DOM樹中,頂端的節(jié)點稱為根節(jié)點,根節(jié)點之外的每個節(jié)點都有一個父節(jié)點,節(jié)點可以有任何數(shù)量的子節(jié)點,葉子是沒有子節(jié)點的節(jié)點,同級節(jié)點是擁有相同父節(jié)點的節(jié)點。因為HTML等文檔數(shù)據(jù)是按照樹的形式進行構(gòu)造的,所以可以在不了解樹的確切結(jié)構(gòu)且不了解其中包含的數(shù)據(jù)類型的情況下,對其進行遍歷。
[0089]在HTML網(wǎng)頁腳本的標(biāo)簽中,有一種標(biāo)簽類型〈embedXembed是HTML5中新增的標(biāo)簽,可以在頁面中嵌入任何類型的文檔,用戶的機器上必須已經(jīng)安裝了能夠正確顯示文檔內(nèi)容的程序,一般常用于在網(wǎng)頁中插入多媒體格式,該多媒體格式可以是rm.mid.wav等),用以標(biāo)志一種插件資源,該插件資源是使用嵌入瀏覽器的某種插件(比如瀏覽器播放器插件)來呈現(xiàn)內(nèi)容的。
[0090]瀏覽器在生成DOM樹的階段會創(chuàng)建網(wǎng)頁腳本中每個標(biāo)簽(tag)的DOM節(jié)點,其中包括創(chuàng)建插件標(biāo)簽(embed)節(jié)點,每一插件標(biāo)簽節(jié)點具有指定的類型(type)或分類標(biāo)識(classid),用以標(biāo)識插件資源的類型。
[0091]為了提取預(yù)定類型的插件資源,本實施例采用以下方案:
[0092]在瀏覽器創(chuàng)建插件標(biāo)簽(embed)節(jié)點時,獲取該插件標(biāo)簽節(jié)點,并根據(jù)插件標(biāo)簽節(jié)點的type或classid)判斷該插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽是否為預(yù)定類型標(biāo)簽,即是否符合預(yù)定協(xié)議規(guī)范,若是,則提取所述插件標(biāo)簽對應(yīng)的插件資源,作為一種實施方式,可以提取插件標(biāo)簽的src/url/param_url。
[0093]在提取出插件標(biāo)簽對應(yīng)的插件資源后,可以將該插件資源傳遞給相應(yīng)的播放器進行播放。
[0094]本實施例通過上述方案,在用戶通過瀏覽器瀏覽網(wǎng)頁時,瀏覽器通過解析網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點;從DOM節(jié)點中獲取插件標(biāo)簽節(jié)點;當(dāng)所述插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時,提取所述插件標(biāo)簽對應(yīng)的插件資源;將所述插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進行播放。
[0095]相比現(xiàn)有的網(wǎng)頁內(nèi)容提取方案需要后臺服務(wù)器依賴第三方數(shù)據(jù)庫支撐,不僅增加了運營成本,而且每次打開網(wǎng)頁時,都需要向后臺服務(wù)器發(fā)送查詢指令,服務(wù)器還要返回查詢結(jié)果,增加了額外的流量消耗,并影響了網(wǎng)頁的展示速度。本實施例方案可以不依賴后臺服務(wù)器,而是在瀏覽器終端實現(xiàn)網(wǎng)頁中符合預(yù)定協(xié)議規(guī)范的資源信息的提取,可在網(wǎng)頁尚未真正渲染時完成符合特定協(xié)議規(guī)范的內(nèi)容的提取,由此提高了網(wǎng)頁預(yù)定內(nèi)容的提取速度,同時也提高了網(wǎng)頁的展示速度;此外,由于本方案可以不依賴后臺服務(wù)器而是在瀏覽器終端側(cè)實現(xiàn)插件資源的提取,在技術(shù)上易于實現(xiàn),可系統(tǒng)降低開發(fā)成本。
[0096]需要說明的是,考慮到一些網(wǎng)頁在開發(fā)設(shè)計過程中,會檢測網(wǎng)頁當(dāng)前運行的系統(tǒng)所安裝的插件類型,如果不存在某種預(yù)定類型的插件,則不會允許從網(wǎng)頁中提取該預(yù)定類型的插件資源信息。為此,本實施例還可以在瀏覽器代碼中聲明,該瀏覽器支持與預(yù)定規(guī)則相適配的插件資源協(xié)議,以便在網(wǎng)頁打開過程中,能夠從網(wǎng)頁中提取該預(yù)定類型的資源信肩、O
[0097]如圖6所示,本發(fā)明第二實施例提出一種提取網(wǎng)頁內(nèi)容的裝置,在上述圖5所示的第一實施例的基礎(chǔ)上,還包括:
[0098]匹配模塊205,用于當(dāng)所述插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽不為預(yù)定類型標(biāo)簽時,采用預(yù)定規(guī)則,例如正則表達式規(guī)則,匹配所述網(wǎng)頁腳本的預(yù)定類型標(biāo)簽對應(yīng)的插件資源;
[0099]所述提取模塊204,還用于當(dāng)匹配成功后,從所述網(wǎng)頁腳本中提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源。
[0100]本實施例與上述圖5所示的第一實施例的區(qū)別在于,本實施例還包括插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽不為預(yù)定類型標(biāo)簽時提取插件資源的處理方案。
[0101]具體地,本實施例考慮到一些網(wǎng)頁在開發(fā)設(shè)計過程中,會設(shè)置一些其他條件,來確保預(yù)定類型的插件資源能夠可靠地播放,如要求用戶點擊某廣告,或檢測瀏覽器客戶端的尺寸、系統(tǒng)類型,等等??傊?,這使得該網(wǎng)頁在手機等終端瀏覽器上可能無法獲得預(yù)定類型的插件標(biāo)簽,致使插件資源提取操作失敗。
[0102]為此,本實施例采用如下解決方案:采取正則匹配的方法,到網(wǎng)頁腳本資源里去查找到預(yù)定類型插件標(biāo)簽的資源信息。
[0103]具體實現(xiàn)如下:
[0104]當(dāng)判斷獲取的插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽不為預(yù)定類型標(biāo)簽時,采用預(yù)定規(guī)貝U,例如正則表達式規(guī)則,匹配所述網(wǎng)頁腳本的預(yù)定類型標(biāo)簽對應(yīng)的插件資源;當(dāng)匹配成功后,從所述網(wǎng)頁腳本中提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源。若匹配失敗,則表示插件資源提取失敗。
[0105]本實施例通過上述方案,在網(wǎng)頁設(shè)計中存在可能無法獲得預(yù)定類型的插件標(biāo)簽的應(yīng)用場景下,采用正則匹配的方法,到網(wǎng)頁腳本資源里去查找到預(yù)定類型插件標(biāo)簽的資源信息,由此提高了網(wǎng)頁資源信息的提取成功率,保證了網(wǎng)頁資源信息提取操作的可靠性。
[0106]需要說明的是,上述預(yù)定規(guī)則可以動態(tài)配置,可以在瀏覽器終端完成配置,也可以由后臺服務(wù)器配置后下發(fā)給瀏覽器終端,即本實施例插件資源的提取規(guī)則可以不寫死在瀏覽器代碼里,而是可以用腳本代碼動態(tài)指定,并可根據(jù)各大網(wǎng)站的改版情況動態(tài)修正。
[0107]當(dāng)網(wǎng)頁所在的視頻網(wǎng)站版本更新后,原有的網(wǎng)頁資源提取規(guī)則因無法動態(tài)調(diào)整會失效。若采用現(xiàn)有的網(wǎng)頁資源提取方案,則無法調(diào)整網(wǎng)頁資源提取規(guī)則;而本實施例中由于采用正則匹配規(guī)則,而且預(yù)定規(guī)則可以動態(tài)配置,即可以隨時修改,在視頻網(wǎng)站版本更新導(dǎo)致原有的網(wǎng)頁資源提取規(guī)則失效時,本實施例可以通過瀏覽器終端或者后臺服務(wù)器下發(fā)新的正則匹配規(guī)則,以應(yīng)對網(wǎng)站改版導(dǎo)致的原模版失效問題,從而提高了網(wǎng)頁資源提取規(guī)則的靈活性,并保證了網(wǎng)頁資源提取操作的正常進行。
[0108]如圖7所示,本發(fā)明第三實施例提出一種提取網(wǎng)頁內(nèi)容的裝置,在上述圖6所示的第二實施例的基礎(chǔ)上,還包括:
[0109]配置模塊206,用于檢測是否有提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源的預(yù)定規(guī)則更新,若有,則從瀏覽器后臺服務(wù)器獲取更新后的預(yù)定規(guī)則;否則,由所述解析模塊202解析所述網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點。
[0110]本實施例與上述圖6所示的第二實施例的區(qū)別在于,本實施例還包括應(yīng)對預(yù)定規(guī)則更新后的插件資源提取方案。
[0111]具體地,瀏覽器在拉取到網(wǎng)頁后,針對該網(wǎng)頁,檢測是否有提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源的預(yù)定規(guī)則更新,若有,則獲取更新后的預(yù)定規(guī)則,作為一種實施方式,預(yù)定規(guī)則可以在瀏覽器終端完成配置更新,也可以由后臺服務(wù)器配置更新后下發(fā)給瀏覽器終端。
[0112]本實施例以預(yù)定規(guī)則由后臺服務(wù)器配置更新進行舉例,在檢測到有提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源的預(yù)定規(guī)則更新時,從瀏覽器后臺服務(wù)器獲取更新后的預(yù)定規(guī)則。
[0113]之后,瀏覽器對該網(wǎng)頁進行解析,生成DOM樹,在生成DOM樹的階段會創(chuàng)建網(wǎng)頁腳本中每個標(biāo)簽(tag)的DOM節(jié)點,其中,在創(chuàng)建用于標(biāo)志插件資源的插件標(biāo)簽(embed)節(jié)點時,獲取該插件標(biāo)簽節(jié)點,并根據(jù)插件標(biāo)簽節(jié)點的type或(classid)判斷該插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽是否為預(yù)定類型標(biāo)簽,即是否符合預(yù)定協(xié)議規(guī)范,若是,則提取所述插件標(biāo)簽對應(yīng)的插件資源,將所述插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進行播放。
[0114]若判斷該插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽不為預(yù)定類型標(biāo)簽,則采用更新后的預(yù)定規(guī)則匹配所述網(wǎng)頁腳本的預(yù)定類型標(biāo)簽對應(yīng)的插件資源;當(dāng)匹配成功后,從所述網(wǎng)頁腳本中提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源,并將對應(yīng)的插件資源傳遞給相應(yīng)的播放器進行播放。若匹配失敗,則表示插件資源提取失敗。
[0115]本實施例通過上述方案,瀏覽器在用戶瀏覽網(wǎng)頁時,通過解析網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點;從DOM節(jié)點中獲取插件標(biāo)簽節(jié)點;當(dāng)所述插件標(biāo)簽節(jié)點對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時,提取所述插件標(biāo)簽對應(yīng)的插件資源;將所述插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進行播放,可在網(wǎng)頁尚未真正渲染時完成符合特定協(xié)議規(guī)范的內(nèi)容的提取,由此提高了網(wǎng)頁預(yù)定內(nèi)容的提取速度,同時也提高了網(wǎng)頁的展示速度,此外,由于本方案可以不依賴后臺服務(wù)器而是在瀏覽器終端側(cè)實現(xiàn)插件資源的提取,在技術(shù)上述易于實現(xiàn),可降低開發(fā)成本。另外,在網(wǎng)頁設(shè)計中存在可能無法獲得預(yù)定類型的插件標(biāo)簽的應(yīng)用場景下,采用正則匹配的方法,到網(wǎng)頁腳本資源里去查找到預(yù)定類型插件標(biāo)簽的資源信息,由此提高了網(wǎng)頁資源信息的提取成功率,保證了網(wǎng)頁資源信息提取操作的可靠性。而且預(yù)定規(guī)則可以動態(tài)配置,即可以隨時修改,在視頻網(wǎng)站版本更新導(dǎo)致原有的網(wǎng)頁資源提取規(guī)則失效時,可以通過瀏覽器終端或者后臺服務(wù)器下發(fā)新的正則匹配規(guī)則,以應(yīng)對網(wǎng)站改版導(dǎo)致的原模版失效問題,從而提高了網(wǎng)頁資源提取規(guī)則的靈活性。
[0116]如圖8所示,本發(fā)明第四實施例提出一種提取網(wǎng)頁內(nèi)容的裝置,在上述圖7所示的第三實施例的基礎(chǔ)上,還包括:
[0117]發(fā)送模塊207,用于將提取的插件資源傳遞給相應(yīng)的播放器進行播放。
[0118]本實施例與上述圖7所示的第三實施例的區(qū)別在于,本實施例還包括播放提取的插件資源的方案。
[0119]在提取出對應(yīng)的插件資源后,將該插件資源傳遞給相應(yīng)的播放器進行播放,由此實現(xiàn)了插件類網(wǎng)頁內(nèi)容在終端尤其是手機等移動終端瀏覽器上的播放展示。其他與第三實施例相同。
[0120]如圖9所示,本發(fā)明較佳實施例提出一種提取網(wǎng)頁內(nèi)容的系統(tǒng),包括:終端301和與該終端301通信連接的服務(wù)器302,該終端301包括如上所述的裝置。
[0121]所述服務(wù)器302,用于向所述終端301下發(fā)用于提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源的預(yù)定規(guī)則。
[0122]具體地,本實