提取網(wǎng)頁內(nèi)容的方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種提取網(wǎng)頁內(nèi)容的方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]目前,在用戶使用瀏覽器訪問視頻網(wǎng)站時(shí),瀏覽器會(huì)向指定服務(wù)器發(fā)送查詢指令,服務(wù)器根據(jù)該查詢指令中的網(wǎng)頁URL查找數(shù)據(jù)庫,獲得該網(wǎng)頁URL里包含的視頻資源的鏈接、title、類型等數(shù)據(jù),返回給瀏覽器終端。瀏覽器終端將得到的數(shù)據(jù)顯示出來,呈現(xiàn)給用戶,用戶可以點(diǎn)擊選擇相應(yīng)選項(xiàng)進(jìn)行播放。
[0003]另外,在一些網(wǎng)頁中以插件的形式嵌入有視頻播放器,視頻播放器插件具有各自的協(xié)議規(guī)范,網(wǎng)頁開發(fā)者只要按照規(guī)范編寫網(wǎng)頁腳本,在打開網(wǎng)頁時(shí),即可方便地調(diào)用對應(yīng)的播放器播放視頻、音頻數(shù)據(jù)。
[0004]雖然現(xiàn)有的這種視頻網(wǎng)站資源播放方式不依靠瀏覽器終端的提取邏輯,可以減輕終端的負(fù)擔(dān),但是,需要構(gòu)建后臺(tái)服務(wù)器,而且服務(wù)器還需要依賴第三方數(shù)據(jù)庫支撐,該技術(shù)較為復(fù)雜且增加了開發(fā)成本。此外,每次打開網(wǎng)頁時(shí),都需要向后臺(tái)服務(wù)器發(fā)送查詢指令,服務(wù)器還要返回查詢結(jié)果,不僅增加了額外的流量消耗,而且影響了網(wǎng)頁的展示速度。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種提取網(wǎng)頁內(nèi)容的方法、裝置及系統(tǒng),旨在快速提取網(wǎng)頁資源,降低成本。
[0006]本發(fā)明實(shí)施例提出一種提取網(wǎng)頁內(nèi)容的方法,包括:
[0007]響應(yīng)移動(dòng)客戶端在瀏覽器上觸發(fā)的網(wǎng)頁瀏覽指令,獲取對應(yīng)的網(wǎng)頁;
[0008]解析所述網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的D0M(Document Object Model,文檔對象模型)節(jié)點(diǎn);
[0009]從所述DOM節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);
[0010]當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取所述插件標(biāo)簽對應(yīng)的插件資源。
[0011]本發(fā)明實(shí)施例還提出一種提取網(wǎng)頁內(nèi)容的裝置,包括:
[0012]拉取模塊,用于響應(yīng)移動(dòng)客戶端在瀏覽器上觸發(fā)的網(wǎng)頁瀏覽指令,獲取對應(yīng)的網(wǎng)頁;
[0013]解析模塊,用于解析所述網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點(diǎn);
[0014]獲取模塊,用于從所述DOM節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);
[0015]提取模塊,用于當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取所述插件標(biāo)簽對應(yīng)的插件資源。
[0016]本發(fā)明實(shí)施例還提出一種提取網(wǎng)頁內(nèi)容的系統(tǒng),包括:終端及與所述終端通信連接的服務(wù)器,所述終端包括如上所述的裝置;
[0017]所述服務(wù)器,用于向所述終端下發(fā)用于提取預(yù)定類型標(biāo)簽對應(yīng)的插件資源的預(yù)定規(guī)則。
[0018]本發(fā)明實(shí)施例提出的一種提取網(wǎng)頁內(nèi)容的方法、裝置及系統(tǒng),瀏覽器在用戶瀏覽網(wǎng)頁時(shí),通過解析網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點(diǎn);WD0M節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取所述插件標(biāo)簽對應(yīng)的插件資源;將所述插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進(jìn)行播放,可在網(wǎng)頁尚未真正渲染時(shí)完成符合特定協(xié)議規(guī)范的內(nèi)容的提取,由此提高了網(wǎng)頁預(yù)定內(nèi)容的提取速度,同時(shí)也提高了網(wǎng)頁的展示速度,此外,由于本方案可以不依賴后臺(tái)服務(wù)器而是在瀏覽器終端側(cè)實(shí)現(xiàn)插件資源的提取,在技術(shù)上易于實(shí)現(xiàn),可降低開發(fā)成本。
【附圖說明】
[0019]圖1是本發(fā)明提取網(wǎng)頁內(nèi)容的方法第一實(shí)施例的流程示意圖;
[0020]圖2是本發(fā)明提取網(wǎng)頁內(nèi)容的方法第二實(shí)施例的流程示意圖;
[0021]圖3是本發(fā)明提取網(wǎng)頁內(nèi)容的方法第三實(shí)施例的流程示意圖;
[0022]圖4是本發(fā)明提取網(wǎng)頁內(nèi)容的方法第四實(shí)施例的流程示意圖;
[0023]圖5是本發(fā)明提取網(wǎng)頁內(nèi)容的裝置第一實(shí)施例的功能模塊示意圖;
[0024]圖6是本發(fā)明提取網(wǎng)頁內(nèi)容的裝置第二實(shí)施例的功能模塊示意圖;
[0025]圖7是本發(fā)明提取網(wǎng)頁內(nèi)容的裝置第三實(shí)施例的功能模塊示意圖;
[0026]圖8是本發(fā)明提取網(wǎng)頁內(nèi)容的裝置第四實(shí)施例的功能模塊示意圖;
[0027]圖9是本發(fā)明提取網(wǎng)頁內(nèi)容的系統(tǒng)較佳實(shí)施例的架構(gòu)示意圖;
[0028]圖10是本發(fā)明實(shí)施例提取網(wǎng)頁內(nèi)容的終端的另一種結(jié)構(gòu)示意圖。
[0029]為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。
【具體實(shí)施方式】
[0030]應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0031]本發(fā)明實(shí)施例的主要解決方案是:瀏覽器在用戶瀏覽網(wǎng)頁時(shí),通過解析網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM (Document Object Model,文檔對象模型)節(jié)點(diǎn);從DOM節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取插件標(biāo)簽對應(yīng)的插件資源;將插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進(jìn)行播放,可在網(wǎng)頁尚未真正渲染時(shí)完成符合特定協(xié)議規(guī)范的內(nèi)容的提取,以提高網(wǎng)頁預(yù)定內(nèi)容的提取速度和網(wǎng)頁的展示速度,此外,由于本方案可以不依賴后臺(tái)服務(wù)器而是在瀏覽器終端側(cè)實(shí)現(xiàn)插件資源的提取,在技術(shù)上易于實(shí)現(xiàn),可降低開發(fā)成本。
[0032]如圖1所示,本發(fā)明第一實(shí)施例提出一種提取網(wǎng)頁內(nèi)容的方法,包括:
[0033]步驟S101,響應(yīng)移動(dòng)客戶端在瀏覽器上觸發(fā)的網(wǎng)頁瀏覽指令,獲取對應(yīng)的網(wǎng)頁;
[0034]其中,本實(shí)施例瀏覽器可以是PC端瀏覽器,也可以是手機(jī)等移動(dòng)終端瀏覽器,尤其指手機(jī)等移動(dòng)終端瀏覽器。因?yàn)楝F(xiàn)有的嵌入網(wǎng)頁的瀏覽器播放器插件多局限于PC端桌面系統(tǒng),而不適用于手機(jī)端瀏覽器,在手機(jī)端打開網(wǎng)頁時(shí),則頁面無法播放視頻。
[0035]另外,考慮到現(xiàn)有的網(wǎng)頁內(nèi)容提取方案需要后臺(tái)服務(wù)器依賴第三方數(shù)據(jù)庫支撐,不僅增加了運(yùn)營成本,而且每次打開網(wǎng)頁時(shí),都需要向后臺(tái)服務(wù)器發(fā)送查詢指令,服務(wù)器還要返回查詢結(jié)果,增加了額外的流量消耗,并影響了網(wǎng)頁的展示速度。本實(shí)施例方案可以不依賴后臺(tái)服務(wù)器,而是在瀏覽器終端實(shí)現(xiàn)網(wǎng)頁中符合預(yù)定協(xié)議規(guī)范的資源信息的提取,以便對提取的資源信息進(jìn)行相應(yīng)的處理。
[0036]比如提取嵌入網(wǎng)頁的瀏覽器播放器插件對應(yīng)的插件資源(比如提取快播qvod、百度影音bdhd資源、flash資源,或者其它預(yù)定類型的插件資源等),調(diào)用相應(yīng)的播放器實(shí)現(xiàn)視頻資源的播放等,從而可以降低成本。
[0037]具體地,在用戶通過瀏覽器瀏覽網(wǎng)頁時(shí),瀏覽器根據(jù)用戶觸發(fā)的網(wǎng)頁瀏覽指令拉取對應(yīng)的網(wǎng)頁,該網(wǎng)頁中以插件形式嵌入有符合預(yù)定協(xié)議規(guī)范的視頻播放器。針對不同協(xié)議規(guī)范的視頻播放器插件,由網(wǎng)頁開發(fā)者按照規(guī)范編寫相應(yīng)的網(wǎng)頁腳本,在打開網(wǎng)頁時(shí),即可方便地調(diào)用對應(yīng)的播放器播放視頻、音頻數(shù)據(jù)。
[0038]步驟S102,解析所述網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點(diǎn);
[0039]瀏覽器在拉取到網(wǎng)頁后,對該網(wǎng)頁進(jìn)行解析,生成DOM樹;其中,DOM樹是指文檔模型樹,在HTML網(wǎng)頁腳本中,其中的所有元素單元組合在一起可以看作是一顆多叉樹,這種樹結(jié)構(gòu)被稱為節(jié)點(diǎn)樹。DOM樹中的每一節(jié)點(diǎn)單元對應(yīng)HTML網(wǎng)頁腳本里的一個(gè)元素單元,即標(biāo)簽(tag),可通過這棵DOM樹訪問所有節(jié)點(diǎn),可以對DOM樹進(jìn)行節(jié)點(diǎn)的遍歷、插入、刪除等操作,也可以創(chuàng)建新的節(jié)點(diǎn)元素。
[0040]DOM樹展示了節(jié)點(diǎn)的集合,以及它們之間的聯(lián)系。這棵樹從根節(jié)點(diǎn)開始,然后在樹的最低層級(jí)向文本節(jié)點(diǎn)長出枝條。DOM樹中的節(jié)點(diǎn)彼此之間都有等級(jí)關(guān)系,通常通過父、子和同級(jí)節(jié)點(diǎn)來描述這種關(guān)系。父節(jié)點(diǎn)擁有子節(jié)點(diǎn),位于相同層級(jí)上的子節(jié)點(diǎn)稱為同級(jí)節(jié)點(diǎn)(兄弟或姐妹)。
[0041]在DOM樹中,頂端的節(jié)點(diǎn)稱為根節(jié)點(diǎn),根節(jié)點(diǎn)之外的每個(gè)節(jié)點(diǎn)都有一個(gè)父節(jié)點(diǎn),節(jié)點(diǎn)可以有任何數(shù)量的子節(jié)點(diǎn),葉子是沒有子節(jié)點(diǎn)的節(jié)點(diǎn),同級(jí)節(jié)點(diǎn)是擁有相同父節(jié)點(diǎn)的節(jié)點(diǎn)。因?yàn)镠TML等文檔數(shù)據(jù)是按照樹的形式進(jìn)行構(gòu)造的,所以可以在不了解樹的確切結(jié)構(gòu)且不了解其中包含的數(shù)據(jù)類型的情況下,對其進(jìn)行遍歷。
[0042]在HTML網(wǎng)頁腳本的標(biāo)簽中,有一種標(biāo)簽類型〈embedXembed是HTML5中新增的標(biāo)簽,可以在頁面中嵌入任何類型的文檔,用戶的機(jī)器上必須已經(jīng)安裝了能夠正確顯示文檔內(nèi)容的程序,一般常用于在網(wǎng)頁中插入多媒體格式,該多媒體格式可以是rm.mid.wav等),用以標(biāo)志一種插件資源,該插件資源是使用嵌入瀏覽器的某種插件(比如瀏覽器播放器插件)來呈現(xiàn)內(nèi)容的。
[0043]瀏覽器在生成DOM樹的階段會(huì)創(chuàng)建網(wǎng)頁腳本中每個(gè)標(biāo)簽(tag)的DOM節(jié)點(diǎn),其中包括創(chuàng)建插件標(biāo)簽(embed)節(jié)點(diǎn),每一插件標(biāo)簽節(jié)點(diǎn)具有指定的類型(type)或分類標(biāo)識(shí)(classid),用以標(biāo)識(shí)插件資源的類型。
[0044]步驟S103,從所述DOM節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);
[0045]步驟S104,當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取所述插件標(biāo)簽對應(yīng)的插件資源;
[0046]為了提取預(yù)定類型的插件資源,本實(shí)施例采用以下方案:
[0047]在瀏覽器創(chuàng)建插件標(biāo)簽(embed)節(jié)點(diǎn)時(shí),獲取該插件標(biāo)簽節(jié)點(diǎn),并根據(jù)插件標(biāo)簽節(jié)點(diǎn)的type或classid)判斷該插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽是否為預(yù)定類型標(biāo)簽,即是否符合預(yù)定協(xié)議規(guī)范,若是,則提取所述插件標(biāo)簽對應(yīng)的插件資源,作為一種實(shí)施方式,可以提取插件標(biāo)簽的src/url/param_url。
[0048]在提取出插件標(biāo)簽對應(yīng)的插件資源后,可以將該插件資源傳遞給相應(yīng)的播放器進(jìn)行播放。
[0049]本實(shí)施例通過上述方案,在用戶通過瀏覽器瀏覽網(wǎng)頁時(shí),瀏覽器通過解析網(wǎng)頁,獲取網(wǎng)頁腳本中標(biāo)簽的DOM節(jié)點(diǎn);從DOM節(jié)點(diǎn)中獲取插件標(biāo)簽節(jié)點(diǎn);當(dāng)所述插件標(biāo)簽節(jié)點(diǎn)對應(yīng)的插件標(biāo)簽為預(yù)定類型標(biāo)簽時(shí),提取所述插件標(biāo)簽對應(yīng)的插件資源;將所述插件標(biāo)簽對應(yīng)的插件資源傳遞給相應(yīng)的播放器進(jìn)行播放。
[0050]相比現(xiàn)有的網(wǎng)頁內(nèi)容提取方案需要后臺(tái)服務(wù)器依賴第三方數(shù)