專利名稱:一種渲染網(wǎng)頁的服務(wù)器和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
一種渲染網(wǎng)頁的服務(wù)器和系統(tǒng)技術(shù)領(lǐng)域[0001]本實用新型涉及計算機網(wǎng)絡(luò)領(lǐng)域,具體涉及一種渲染網(wǎng)頁的服務(wù)器和系統(tǒng)。
背景技術(shù):
[0002]現(xiàn)有技術(shù)中,渲染網(wǎng)頁主要包括創(chuàng)建矢量圖及位圖圖形,調(diào)整網(wǎng)頁色彩,制作按鈕、導(dǎo)航條及動畫,利用濾鏡處理圖像等處理。其中涉及多種處理,處理量較大。可是,對于一些業(yè)務(wù),會有對大量網(wǎng)頁進而渲染操作的需要;例如,網(wǎng)絡(luò)爬蟲業(yè)務(wù)中就需要對大量網(wǎng)頁進行渲染操作。[0003]其中,網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人)是一種按照一定的規(guī)則自動的抓取萬維網(wǎng)信息的程序或者腳本。在現(xiàn)有技術(shù)中,越來越多的網(wǎng)頁頁面采用了異步請求數(shù)據(jù)的方式,對于這類網(wǎng)頁,通過直接下載無法獲取網(wǎng)頁的全部內(nèi)容,會遺漏一些關(guān)鍵鏈接及信息,因此需要對網(wǎng)頁進行渲染,從渲染結(jié)果中獲得更加全面的網(wǎng)頁信息。[0004]此外,在網(wǎng)頁監(jiān)控業(yè)務(wù)中,同樣為了獲得網(wǎng)頁的全面信息,也需要對大量的網(wǎng)頁進行渲染。[0005]對大量網(wǎng)頁的渲染處理要求設(shè)備具有極高的處理能力,現(xiàn)有設(shè)備通常無法滿足這種處理能力的要求,造成處理速度較慢,使得渲染網(wǎng)頁處理成為整個業(yè)務(wù)完成的瓶頸,進而影響整個業(yè)務(wù)的處理速度。實用新型內(nèi)容[0006]鑒于上述問題,本實用新型提供一種渲染網(wǎng)頁的服務(wù)器和系統(tǒng),以解決對網(wǎng)頁渲染處理速度慢,影響業(yè)務(wù)整體處理速度的問題。[0007]依據(jù)本實用新型的一個方面,提供了一種渲染網(wǎng)頁的服務(wù)器,所述服務(wù)器包括多個加載有渲染引擎的虛擬機設(shè)備;[0008]虛擬機設(shè)備中包括多個渲染進程裝置;[0009]渲染進程裝置,用于通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果保存到結(jié)果隊列。[0010]其中,所述虛擬機設(shè)備中加載的渲染引擎為多種;[0011]所述渲染進程裝置具體用于當(dāng)業(yè)務(wù)指定渲染引擎時,通過渲染進程解析出渲染任務(wù)中包含的渲染引擎信息,所述渲染引擎信息中記載用于執(zhí)行所述渲染任務(wù)的渲染引擎;并調(diào)用渲染引擎信息中記載的渲染引擎進行網(wǎng)頁渲染。[0012]其中,所述虛擬機設(shè)備中加載的渲染引擎為多種;[0013]所述多種渲染引擎中至少包括高效渲染引擎;[0014]所述高效渲染引擎為統(tǒng)計中渲染網(wǎng)頁的效率高于平均效率的渲染引擎;[0015]所述渲染進程裝置具體用于當(dāng)業(yè)務(wù)沒有指定渲染引擎時,通過渲染進程調(diào)用高效渲染引擎進行網(wǎng)頁渲染。[0016]其中,所述虛擬機設(shè)備中加載的多種渲染引擎中至少包括通用渲染引擎,[0017]所述通用渲染引擎為統(tǒng)計中支持度超過門限值的渲染引擎;[0018]所述渲染進程裝置還用于通過渲染進程在根據(jù)渲染任務(wù)調(diào)用渲染引擎進行網(wǎng)頁渲染失敗后,調(diào)用通用渲染引擎進行網(wǎng)頁渲染。[0019]其中,所述任務(wù)隊列中保存多種業(yè)務(wù)下發(fā)的渲染任務(wù);[0020]所述渲染進程裝置具體用于通過渲染進程將渲染任務(wù)的渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,以供所述業(yè)務(wù)在后續(xù)操作中從該對應(yīng)的結(jié)果隊列中獲取渲染結(jié)果。[0021]其中,所述業(yè)務(wù)包括網(wǎng)絡(luò)爬蟲業(yè)務(wù)和/或網(wǎng)站監(jiān)控業(yè)務(wù),[0022]所述渲染進程裝置具體用于通過渲染進程獲取渲染后的網(wǎng)頁的文檔對象模型 DOM結(jié)構(gòu)數(shù)據(jù),將所述DOM結(jié)構(gòu)數(shù)據(jù)存入結(jié)果隊列,以供業(yè)務(wù)在后續(xù)操作中使用所述DOM結(jié)構(gòu)數(shù)據(jù)。[0023]依據(jù)本實用新型的另一個方面,提供了一種渲染網(wǎng)頁的系統(tǒng),[0024]所述系統(tǒng)包括[0025]如前所述的服務(wù)器,[0026]任務(wù)隊列存儲服務(wù)器,用于接收業(yè)務(wù)下發(fā)的渲染任務(wù),將渲染任務(wù)存入任務(wù)隊列中;[0027]結(jié)果隊列存儲服務(wù)器,用于保存存放渲染結(jié)果的結(jié)果隊列。[0028]根據(jù)本實用新型提供的渲染網(wǎng)頁的技術(shù)方案,其中,創(chuàng)建多個虛擬機,虛擬機中加載渲染引擎,在虛擬機中啟動多個渲染進程;通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果存入結(jié)果隊列。通過創(chuàng)建多個虛擬機可以對渲染網(wǎng)頁進行并行處理,提高了渲染網(wǎng)頁的處理速度。通過調(diào)用渲染引擎進行渲染,能夠滿足更多渲染屬性,使得渲染結(jié)果中包含的信息更加全面,為業(yè)務(wù)完成提供更好的基礎(chǔ)。由此可見,該技術(shù)方案解決了對大量網(wǎng)頁進行渲染處理速度慢的問題,取得了提高對大量網(wǎng)頁進行渲染的處理速度,為業(yè)務(wù)完成提供更好基礎(chǔ)的有益效果。[0029]上述說明僅是本實用新型技術(shù)方案的概述,為了能夠更清楚了解本實用新型的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本實用新型的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本實用新型的具體實施方式
。
[0030]通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本實用新型的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中[0031]圖I示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的方法的流程圖;[0032]圖2示出了根據(jù)本實用新型一個實施例中應(yīng)用渲染網(wǎng)頁的方法的系統(tǒng)框架示意圖;[0033]圖3示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的方法中渲染進程進行處理的流程圖;[0034]圖4示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的服務(wù)器的結(jié)構(gòu)圖;[0035]以及[0036]圖5示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的系統(tǒng)的結(jié)構(gòu)圖。
具體實施方式
[0037]下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。[0038]參見圖1,示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的方法的流程圖。所述方法包括如下步驟。[0039]步驟S100,創(chuàng)建多個虛擬機,虛擬機中加載渲染引擎,在虛擬機中啟動多個渲染進程。[0040]步驟SlOO的一種具體實現(xiàn)方式可以為在一個物理機器上創(chuàng)建多個虛擬機,在每個虛擬機中加載渲染引擎,并在每個虛擬機中啟動多個渲染進程。[0041]步驟S200,通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果存入結(jié)果隊列。[0042]在本實施例中,通過創(chuàng)建多個虛擬機可以對渲染網(wǎng)頁進行并行處理,提高了渲染網(wǎng)頁的處理速度。通過調(diào)用渲染引擎進行渲染,能夠滿足更多渲染屬性,使得渲染結(jié)果中包含的信息更加全面,為業(yè)務(wù)完成提供更好的基礎(chǔ)。由此可見,解決了對大量網(wǎng)頁進行渲染處理速度慢的問題,取得了提高對大量網(wǎng)頁進行渲染的處理速度,為業(yè)務(wù)完成提供更好基礎(chǔ)的有益效果。[0043]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0044]在本實施例中,虛擬機中加載多種渲染引擎。[0045]所述通過渲染進程根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染具體包括當(dāng)業(yè)務(wù)指定渲染引擎時,通過渲染進程解析出渲染任務(wù)中包含的渲染引擎信息,所述渲染引擎信息中記載用于執(zhí)行所述渲染任務(wù)的渲染引擎;通過渲染進程調(diào)用渲染引擎信息中記載的渲染引擎進行網(wǎng)頁渲染。[0046]本實施例中,通過使用多種渲染引擎,并且通過業(yè)務(wù)在下發(fā)渲染任務(wù)時指定渲染引擎,能夠針對各種網(wǎng)頁使用處理該種網(wǎng)頁的優(yōu)選渲染引擎,進一步提高渲染網(wǎng)頁的處理速度和處理效果。[0047]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0048]在本實施例中,虛擬機中加載多種渲染引擎;[0049]多種渲染引擎中至少包括高效渲染引擎。[0050]所述高效渲染引擎為統(tǒng)計中渲染網(wǎng)頁的效率高于平均效率的渲染引擎。[0051]所述通過渲染進程根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染具體包括當(dāng)業(yè)務(wù)沒有指定渲染引擎時,通過渲染進程調(diào)用高效渲染弓I擎進行網(wǎng)頁渲染。[0052]具體地,在統(tǒng)計時,針對同一網(wǎng)頁使用目前常用的多種渲染引擎進行網(wǎng)頁渲染,得到每種渲染引擎渲染該網(wǎng)頁所用的時間,進而得出渲染該網(wǎng)頁的平均時間。由此可以得出渲染網(wǎng)頁所用時間小于平均時間的渲染引擎為高效渲染引擎,即通過渲染所用時間來衡量渲染效率。[0053]本實施例中,通過使用多種渲染引擎,并且通過渲染進程依據(jù)渲染任務(wù)選擇渲染效率高的渲染引擎,進一步提高了渲染網(wǎng)頁的處理速度和處理效果;并且實現(xiàn)了渲染引擎選擇的自動化,避免了配置的繁瑣操作。[0054]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0055]所述加載的多種渲染引擎中至少包括通用渲染引擎,[0056]所述通用渲染引擎為統(tǒng)計中支持度超過門限值的渲染引擎,例如IE渲染引擎。[0057]所述根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染后,所述方法還包括通過渲染進程在根據(jù)渲染任務(wù)調(diào)用渲染引擎進行網(wǎng)頁渲染失敗后,調(diào)用通用渲染引擎進行網(wǎng)頁渲染。例如,通過渲染進程檢查渲染結(jié)果,發(fā)現(xiàn)網(wǎng)頁渲染失敗,則調(diào)用IE渲染引擎重新進行網(wǎng)頁渲染。[0058]在本實施例中,當(dāng)應(yīng)用選擇的渲染引擎進行渲染失敗時,調(diào)用通用渲染引擎,能夠增加網(wǎng)頁被渲染成功的概率,進而為業(yè)務(wù)提供更好的完成基礎(chǔ)。[0059]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0060]所述任務(wù)隊列中保存多種業(yè)務(wù)下發(fā)的渲染任務(wù)。[0061]所述通過渲染進程將渲染結(jié)果存入結(jié)果隊列具體包括通過渲染進程將渲染任務(wù)的渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,以供所述業(yè)務(wù)在后續(xù)操作中從該對應(yīng)的結(jié)果隊列中獲取渲染結(jié)果。[0062]在本實施例中,包括多個結(jié)果隊列,每種業(yè)務(wù)與一個結(jié)果隊列對應(yīng)。其中,將渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,便于不同種類的業(yè)務(wù)獲取各自的結(jié)果O[0063]在本實施例中,能夠為多種業(yè)務(wù)提供渲染網(wǎng)頁的服務(wù),當(dāng)需要進行網(wǎng)頁渲染的業(yè)務(wù)種類增加時,僅需將該增加的業(yè)務(wù)的任務(wù)保存到任務(wù)隊列便可為該業(yè)務(wù)提供渲染網(wǎng)頁的服務(wù),因此提高了業(yè)務(wù)種類的可擴展性,便于增加業(yè)務(wù)種類。[0064]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0065]本實施例中,所述業(yè)務(wù)包括網(wǎng)絡(luò)爬蟲業(yè)務(wù)和/或網(wǎng)站監(jiān)控業(yè)務(wù),[0066]所述通過渲染進程將渲染結(jié)果存入結(jié)果隊列具體包括通過渲染進程獲取渲染后的網(wǎng)頁的DOM (文檔對象模型,Document Object Model)結(jié)構(gòu)數(shù)據(jù),將所述DOM結(jié)構(gòu)數(shù)據(jù)存入結(jié)果隊列,以供業(yè)務(wù)在后續(xù)操作中使用該DOM結(jié)構(gòu)數(shù)據(jù)。[0067]其中,DOM結(jié)構(gòu)數(shù)據(jù)中包含網(wǎng)頁的整體結(jié)構(gòu)的信息,網(wǎng)絡(luò)爬蟲業(yè)務(wù)和網(wǎng)站監(jiān)控業(yè)務(wù)從DOM結(jié)構(gòu)數(shù)據(jù)中獲得網(wǎng)頁的整體結(jié)構(gòu),供進行后續(xù)操作時使用。[0068]現(xiàn)有技術(shù)中,渲染網(wǎng)頁的結(jié)果多表現(xiàn)為渲染后生成的圖片,但是該圖片對網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)處理意義較小,網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)注重獲取網(wǎng)頁的結(jié)構(gòu)信息。 本實施例中,將DOM結(jié)構(gòu)數(shù)據(jù)作為結(jié)果存入結(jié)果隊列供業(yè)務(wù)使用,方便了網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)的后續(xù)處理。[0069]在一實施例中,以本實用新型在網(wǎng)絡(luò)爬蟲業(yè)務(wù)中應(yīng)用為例對本實用新型渲染網(wǎng)頁的方法進行說明。網(wǎng)絡(luò)爬蟲系統(tǒng)中的頁面抓取器對于無需渲染的網(wǎng)頁直接下載,對于需要渲染的網(wǎng)頁采用本實施中方法進行渲染。[0070]參見圖2,示出了根據(jù)本實用新型一個實施例中應(yīng)用渲染網(wǎng)頁的方法的系統(tǒng)框架示意圖。[0071]其中,通過XEN (虛擬機監(jiān)視器)創(chuàng)建η個虛擬機,每個虛擬機中加載3中渲染引擎,在每個虛擬機中啟動3至5個渲染進程。虛擬機中加載的渲染引擎包括ΙΕ渲染引擎、 Gecko (火狐中使用的瀏覽器內(nèi)核)渲染引擎、和Webkit (—種開源的瀏覽器內(nèi)核)渲染引擎。[0072]IE渲染引擎,基于屏幕讀取技術(shù)讀取IE瀏覽器的渲染結(jié)果。具體操作為打開IE 瀏覽器,并指定打開待渲染的頁面;在渲染完畢后,采用屏幕讀取技術(shù),對IE渲染的頁面進行遍歷,讀取Web頁面中的DOM結(jié)構(gòu);輸出D0M。[0073]Webkit渲染引擎,基于對Webkit源碼修改,修改后的Webkit輸入為需要渲染的 URL,輸出是渲染結(jié)果的DOM樹。具體操作為=Webkit渲染完成后,產(chǎn)生一系列的相應(yīng)事件, 對源碼中這些相應(yīng)事件的回調(diào)進行重載,輸出最終的DOM結(jié)構(gòu)。[0074]Gecko渲染引擎,基于Gecko內(nèi)核的瀏覽器插件,實現(xiàn)一個瀏覽器插件的應(yīng)用,該插件實現(xiàn)輸出渲染的DOM結(jié)構(gòu)。[0075]三種渲染引擎比較,IE渲染引擎的支持度最高,其采用屏幕讀取技術(shù),準(zhǔn)確度在三種渲染引擎中較高;但是渲染效率比Webkit渲染引擎和Gecko渲染引擎差一些,Webkit渲染引擎和Gecko渲染引擎的效率低大約40%。Webkit渲染引擎和Gecko渲染引擎,在準(zhǔn)確度和渲染效率上相近似;兩者的渲染效率較IE渲染引擎更高。如果注重渲染效率,則優(yōu)選 Webkit渲染引擎或者Gecko渲染引擎;如果注重準(zhǔn)確度,則優(yōu)選IE渲染引擎。[0076]例如,在業(yè)務(wù)指定渲染引擎時,要求準(zhǔn)確度高于95%的網(wǎng)站監(jiān)控業(yè)務(wù)或者網(wǎng)絡(luò)爬蟲業(yè)務(wù)可以選擇指定IE渲染引擎,對于要求的準(zhǔn)確度不高于95%的網(wǎng)站監(jiān)控業(yè)務(wù)或者網(wǎng)絡(luò)爬蟲業(yè)務(wù)可以選擇指定Webkit渲染引擎或Gecko渲染引擎。[0077]例如,在業(yè)務(wù)沒有指定渲染引擎時,可以,以IE渲染引擎為通用渲染引擎,以 Webkit渲染引擎或Gecko渲染引擎為高效渲染引擎。[0078]此外,如圖2所示,本實施例中采用統(tǒng)一的任務(wù)隊列保存任務(wù)。該任務(wù)隊列為 gearman (可進行并行分發(fā)的對外接口)隊列,來實現(xiàn)并行分發(fā)。在本實施例中,對網(wǎng)絡(luò)爬蟲業(yè)務(wù)應(yīng)用網(wǎng)頁渲染,其中涉及一個業(yè)務(wù),因此采用一個結(jié)果隊列,該結(jié)果隊列為gearman隊列。在存在多種業(yè)務(wù)的情況下,可以使用多個結(jié)果隊列,每種業(yè)務(wù)對應(yīng)一個結(jié)果隊列。[0079]本實施例中,業(yè)務(wù)下發(fā)的保存在任務(wù)隊列中的任務(wù)為XML格式,任務(wù)內(nèi)容均寫在規(guī)定的XML字段當(dāng)中,比如〈url>〈/url>字段中的數(shù)據(jù)是需要渲染的網(wǎng)頁地址, 〈engineX/engine〉字段中的數(shù)據(jù)是任務(wù)指定的渲染引擎等。在存在多種業(yè)務(wù)時,任務(wù)內(nèi)容還包括渲染完成后的結(jié)果投遞地址,即業(yè)務(wù)對應(yīng)的結(jié)果隊列,以便業(yè)務(wù)的下游操作獲取結(jié)果O[0080]參見圖3,示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的方法中渲染進程進行處理的流程圖。[0081]步驟S310,通過渲染進程從任務(wù)隊列中獲取渲染任務(wù),解析出業(yè)務(wù)在渲染任務(wù)中指定的渲染弓I擎和待渲染的網(wǎng)頁地址。[0082]步驟S320,通過渲染進程調(diào)用指定的渲染引擎按網(wǎng)頁地址渲染待渲染的網(wǎng)頁。[0083]步驟S330,通過渲染進程獲取渲染后的網(wǎng)頁的文檔對象模型DOM結(jié)構(gòu)數(shù)據(jù),將所述DOM結(jié)構(gòu)數(shù)據(jù)存入結(jié)果隊列。[0084]本實施僅為本實用新型在網(wǎng)絡(luò)爬蟲業(yè)務(wù)中應(yīng)用中的一個示例性說明,本實用新型的具體實現(xiàn)不限于此,本實用新型可以用于需要進行網(wǎng)頁渲染的任何業(yè)務(wù)中。[0085]參見圖4,示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的服務(wù)器的結(jié)構(gòu)圖。[0086]所述服務(wù)器為虛擬機服務(wù)器200,包括多個加載有渲染引擎的虛擬機設(shè)備210。[0087]虛擬機設(shè)備210中包括多個渲染進程裝置212。[0088]渲染進程裝置212,用于通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果保存到結(jié)果隊列。[0089]在本實施例中,通過在服務(wù)器中包含多個虛擬機設(shè)備210,可以對渲染網(wǎng)頁進行并行處理,提高了渲染網(wǎng)頁的處理速度。通過渲染進程裝置212調(diào)用渲染引擎進行渲染,能夠滿足更多渲染屬性,使得渲染結(jié)果中包含的信息更加全面,為業(yè)務(wù)完成提供更好的基礎(chǔ)。由此可見,解決了對大量網(wǎng)頁進行渲染處理速度慢的問題,取得了提高對大量網(wǎng)頁進行渲染的處理速度,為業(yè)務(wù)完成提供更好基礎(chǔ)的有益效果。[0090]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0091]虛擬機設(shè)備210中加載的渲染引擎為多種。[0092]渲染進程裝置212具體用于業(yè)務(wù)指定渲染引擎時,通過渲染進程解析出渲染任務(wù)中包含的渲染引擎信息,所述渲染引擎信息中記載用于執(zhí)行所述渲染任務(wù)的渲染引擎; 并調(diào)用渲染引擎信息中記載的渲染引擎進行網(wǎng)頁渲染。[0093]本實施例中,通過加載多種渲染引擎,并且通過業(yè)務(wù)在下發(fā)渲染任務(wù)時指定渲染引擎,能夠針對各種網(wǎng)頁使用處理該種網(wǎng)頁的優(yōu)選渲染引擎,進一步提高渲染網(wǎng)頁的處理速度和處理效果。[0094]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0095]虛擬機設(shè)備210中加載的渲染引擎為多種。所述多種渲染引擎中至少包括高效渲染引擎;所述高效渲染引擎為統(tǒng)計中渲染網(wǎng)頁的效率高于平均效率的渲染引擎。[0096]渲染進程裝置212具體用于當(dāng)業(yè)務(wù)沒有指定渲染引擎時,通過渲染進程調(diào)用高效渲染引擎進行網(wǎng)頁渲染。[0097]具體地,在統(tǒng)計時,針對同一網(wǎng)頁使用目前常用的多種渲染引擎進行網(wǎng)頁渲染,得到每種渲染引擎渲染該網(wǎng)頁所用的時間,進而得出渲染該網(wǎng)頁的平均時間。由此可以得出渲染網(wǎng)頁所用時間小于平均時間的渲染引擎為高效渲染引擎,即通過渲染所用時間來衡量渲染效率。[0098]本實施例中,通過加載多種渲染引擎,并且渲染進程裝置212依據(jù)渲染任務(wù)選擇渲染效率高的渲染引擎,進一步提高了渲染網(wǎng)頁的處理速度和處理效果;并且實現(xiàn)了渲染弓I擎選擇的自動化,避免了配置的繁瑣操作。[0099]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0100]虛擬機設(shè)備210中加載的多種渲染引擎中至少包括通用渲染引擎。通用渲染引擎為統(tǒng)計中支持度超過門限值的渲染引擎。[0101]渲染進程裝置212還用于通過渲染進程在根據(jù)渲染任務(wù)調(diào)用渲染引擎進行網(wǎng)頁渲染失敗后,調(diào)用通用渲染引擎進行網(wǎng)頁渲染。[0102]在本實施例中,當(dāng)應(yīng)用選擇的渲染引擎進行渲染失敗時,渲染進程裝置212調(diào)用通用渲染引擎,能夠增加網(wǎng)頁被渲染成功的概率,進而為業(yè)務(wù)提供更好的完成基礎(chǔ)。[0103]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0104]任務(wù)隊列中保存多種業(yè)務(wù)下發(fā)的渲染任務(wù)。[0105]渲染進程裝置212具體用于通過渲染進程將渲染任務(wù)的渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,以供所述業(yè)務(wù)在后續(xù)操作中從該對應(yīng)的結(jié)果隊列中獲取渲染結(jié)果。[0106]在本實施例中,每種業(yè)務(wù)與一個結(jié)果隊列對應(yīng)。其中,將渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,便于不同種類的業(yè)務(wù)獲取各自的結(jié)果。[0107]在本實施例中,能夠為多種業(yè)務(wù)提供渲染網(wǎng)頁的服務(wù),當(dāng)需要進行網(wǎng)頁渲染的業(yè)務(wù)種類增加時,僅需將該增加的業(yè)務(wù)的任務(wù)保存到任務(wù)隊列虛擬機服務(wù)器200便可為該業(yè)務(wù)提供渲染網(wǎng)頁的服務(wù),因此提高了業(yè)務(wù)種類的可擴展性,便于增加業(yè)務(wù)種類。[0108]在一實施例中,除下述技術(shù)特征外,其他技術(shù)特征與其他實施例相同。[0109]業(yè)務(wù)包括網(wǎng)絡(luò)爬蟲業(yè)務(wù)和/或網(wǎng)站監(jiān)控業(yè)務(wù)。[0110]渲染進程裝置212具體用于通過渲染進程獲取渲染后的網(wǎng)頁的文檔對象模型 DOM結(jié)構(gòu)數(shù)據(jù),將所述DOM結(jié)構(gòu)數(shù)據(jù)存入結(jié)果隊列,以供業(yè)務(wù)在后續(xù)操作中使用所述DOM結(jié)構(gòu)數(shù)據(jù)。[0111]現(xiàn)有技術(shù)中,渲染網(wǎng)頁的結(jié)果多表現(xiàn)為渲染后生成的圖片,但是該圖片對網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)處理意義較小,網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)注重獲取網(wǎng)頁的結(jié)構(gòu)信息。 本實施例中,渲染進程裝置212將DOM結(jié)構(gòu)數(shù)據(jù)作為結(jié)果存入結(jié)果隊列供業(yè)務(wù)使用,方便了網(wǎng)絡(luò)爬蟲、網(wǎng)站監(jiān)控等業(yè)務(wù)的后續(xù)處理。[0112]參見圖5,示出了根據(jù)本實用新型一個實施例的渲染網(wǎng)頁的系統(tǒng)的結(jié)構(gòu)圖。[0113]所述系統(tǒng)包括[0114]如上述實施例中任一所述的虛擬機服務(wù)器200,以及任務(wù)隊列存儲服務(wù)器100和結(jié)果隊列存儲服務(wù)器300。[0115]任務(wù)隊列存儲服務(wù)器100,用于接收業(yè)務(wù)下發(fā)的渲染任務(wù),將渲染任務(wù)存入任務(wù)隊列中。[0116]結(jié)果隊列存儲服務(wù)器300,用于保存存放渲染結(jié)果的結(jié)果隊列。[0117]該系統(tǒng)包括上述實施例中虛擬機服務(wù)器200,因此具有上述實施例的有益效果。此外,本實施例中,任務(wù)隊列和結(jié)果隊列都可以為gearman隊列,從而實現(xiàn)并行收發(fā),進一步提聞系統(tǒng)的處理能力。[0118]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。 各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本實用新型也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本實用新型的內(nèi)容,并且上面對特定語言所做的描述是為了披露本實用新型的最佳實施方式。[0119]在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本實用新型的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、 結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。[0120]類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個實用新型方面中的一個或多個,在上面對本實用新型的示例性實施例的描述中,本實用新型的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護的本實用新型要求比在每個權(quán)利要求中所明確記載的特征更多的特征。 更確切地說,如下面的權(quán)利要求書所反映的那樣,實用新型方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本實用新型的單獨實施例。[0121 ] 本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。[0122]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本實用新型的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。[0123]應(yīng)該注意的是上述實施例對本實用新型進行說明而不是對本實用新型進行限制, 并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本實用新型可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。
權(quán)利要求1.一種渲染網(wǎng)頁的服務(wù)器,所述服務(wù)器包括多個加載有渲染引擎的虛擬機設(shè)備; 虛擬機設(shè)備中包括多個渲染進程裝置; 渲染進程裝置,用于通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果保存到結(jié)果隊列。
2.根據(jù)權(quán)利要求I所述的服務(wù)器,其中, 所述虛擬機設(shè)備中加載的渲染引擎為多種; 所述渲染進程裝置具體用于當(dāng)業(yè)務(wù)指定渲染引擎時,通過渲染進程解析出渲染任務(wù)中包含的渲染引擎信息,所述渲染引擎信息中記載用于執(zhí)行所述渲染任務(wù)的渲染引擎;并調(diào)用渲染引擎信息中記載的渲染引擎進行網(wǎng)頁渲染。
3.根據(jù)權(quán)利要求I所述的服務(wù)器,其中, 所述虛擬機設(shè)備中加載的渲染引擎為多種, 所述多種渲染引擎中至少包括高效渲染引擎, 所述高效渲染引擎為統(tǒng)計中渲染網(wǎng)頁的效率高于平均效率的渲染引擎; 所述渲染進程裝置具體用于當(dāng)業(yè)務(wù)沒有指定渲染引擎時,通過渲染進程調(diào)用高效渲染引擎進行網(wǎng)頁渲染。
4.根據(jù)權(quán)利要求2或3所述的服務(wù)器,其中, 所述虛擬機設(shè)備中加載的多種渲染引擎中至少包括通用渲染引擎, 所述通用渲染引擎為統(tǒng)計中支持度超過門限值的渲染引擎; 所述渲染進程裝置還用于通過渲染進程在根據(jù)渲染任務(wù)調(diào)用渲染引擎進行網(wǎng)頁渲染失敗后,調(diào)用通用渲染引擎進行網(wǎng)頁渲染。
5.根據(jù)權(quán)利要求1、2或3所述的服務(wù)器,其中, 所述任務(wù)隊列中保存多種業(yè)務(wù)下發(fā)的渲染任務(wù); 所述渲染進程裝置具體用于通過渲染進程將渲染任務(wù)的渲染結(jié)果存入下發(fā)所述渲染任務(wù)的業(yè)務(wù)對應(yīng)的結(jié)果隊列,以供所述業(yè)務(wù)在后續(xù)操作中從該對應(yīng)的結(jié)果隊列中獲取渲染結(jié)果。
6.根據(jù)權(quán)利要求2所述的服務(wù)器,其中, 所述業(yè)務(wù)包括網(wǎng)絡(luò)爬蟲業(yè)務(wù)和/或網(wǎng)站監(jiān)控業(yè)務(wù), 所述渲染進程裝置具體用于通過渲染進程獲取渲染后的網(wǎng)頁的文檔對象模型DOM結(jié)構(gòu)數(shù)據(jù),將所述DOM結(jié)構(gòu)數(shù)據(jù)存入結(jié)果隊列,以供業(yè)務(wù)在后續(xù)操作中使用所述DOM結(jié)構(gòu)數(shù)據(jù)。
7.一種渲染網(wǎng)頁的系統(tǒng),所述系統(tǒng)包括 如權(quán)利要求I至6任一所述的服務(wù)器, 任務(wù)隊列存儲服務(wù)器,用于接收業(yè)務(wù)下發(fā)的渲染任務(wù),將渲染任務(wù)存入任務(wù)隊列中; 結(jié)果隊列存儲服務(wù)器,用于保存存放渲染結(jié)果的結(jié)果隊列。
專利摘要本實用新型公開了一種渲染網(wǎng)頁的服務(wù)器和系統(tǒng),所述服務(wù)器包括多個加載有渲染引擎的虛擬機設(shè)備;虛擬機設(shè)備中包括多個渲染進程裝置;渲染進程裝置,用于通過渲染進程從保存業(yè)務(wù)下發(fā)的渲染任務(wù)的任務(wù)隊列中獲取渲染任務(wù),根據(jù)渲染任務(wù)調(diào)用虛擬機中加載的渲染引擎進行網(wǎng)頁渲染,將渲染結(jié)果保存到結(jié)果隊列。本實用新型適于計算機網(wǎng)絡(luò)領(lǐng)域,能夠解決對網(wǎng)頁渲染處理速度慢,影響業(yè)務(wù)整體處理速度的問題。
文檔編號G06F9/455GK202815816SQ201220496488
公開日2013年3月20日 申請日期2012年9月26日 優(yōu)先權(quán)日2012年9月26日
發(fā)明者徐銳波, 路軼 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司