專利名稱:具備頁面渲染功能的網絡爬蟲系統及其實現方法
技術領域:
本發(fā)明涉及一種具備頁面渲染功能的網絡爬蟲系統,同時也涉及該網絡爬蟲系統 實現頁面渲染功能的方法,屬于網絡資源搜索技術領域。
背景技術:
據有關媒體報導,美國谷歌(google)公司在2010年10月6日推出了搜索結果 可視預覽功能,允許用戶在搜索結果列表中直接以縮略圖的形式預覽每個頁面。據谷歌公 司有關人士介紹,“有時用戶點擊一個搜索結果,卻發(fā)現出現的頁面與其想要的頁面相差甚 遠。于是用戶只能點擊返回,再去點擊另一個搜索結果。這種體驗很差。我們試圖以提供 預覽的方式避免這種情況的發(fā)生?!睘榇?,用戶將在搜索結果右側看到一個放大鏡標志,點 擊放大鏡就可以看到這個頁面的縮略圖預覽。用戶還可以向下滑動,查看所有搜索結果的 預覽圖。為了滿足搜索結果可視預覽的要求,谷歌公司將存儲幾十億個流行度較高的網頁 的縮略圖。對于流行度較低的頁面,谷歌公司也通過技術手段在不到十分之一秒的時間內 生成縮略圖。但是,滿足上述要求所付出的硬件成本和軟件成本都是巨大的。目前還有一些別的技術手段可以實現頁面預覽功能,例如使用CGI程序,抓取瀏 覽器的圖像區(qū),利用瀏覽器的繪圖功能生成圖片。另外,在專利申請?zhí)枮?00910221416. 5 的中國發(fā)明專利申請中,公開了一種利用圖像分析對互聯網進行自動爬行的方法和裝置。 對網頁組件進行視覺識別的示例性方法包括以下步驟在網絡瀏覽器中渲染網頁以生成圖 像,利用機器對圖像的至少一個部分進行視覺分析以檢測包含可能的網頁組件的區(qū)域。該 示例性方法還包括步驟自動確定檢測到的網頁組件的類型,并存儲該網頁組件類型和網 頁部分的位置。但是,現有技術中并沒有利用網絡爬蟲系統實現頁面預覽功能的解決方案。網絡 爬蟲(Web Crawler)又稱為網頁蜘蛛(Web Spider)、網絡機器人(Web Robot),是按照一定 的規(guī)則自動抓取互聯網信息的程序或者腳本組成的系統。它的工作過程可以簡述如下從 預先指定的初始URL集(也稱種子集)出發(fā),從中選擇一個URL,獲得該URL所指向的頁面, 再從這個已經訪問的頁面中解析出新的URL,并對這些剛剛提取的URL進行分析比較,判斷 哪些URL還沒有被訪問過并將它們放入到等待訪問的隊列,再按照指定的策略從該等待訪 問隊列取出下一個URL繼續(xù)訪問。如此重復,直到等待訪問隊列為空或滿足停止訪問條件, 其過程與有向圖的遍歷非常相似。訪問的過程中,將該網頁的文本內容保存在搜索引擎的 數據庫中進行分析處理。在這些網絡爬蟲系統的運行過程中,普遍只將網頁的內容按網頁文件進行分析, 抽取其中的內容。一些網絡爬蟲系統則更進一步,對這些內容進行簡單的處理,如加以語義 標注等,方便搜索引擎進行整理排序。但是,這些網絡爬蟲系統普遍不具備頁面渲染的功 能,因此并不能方便地實現搜索結果頁面預覽功能。
發(fā)明內容
本發(fā)明所要解決的首要技術問題是提供一種具備頁面渲染功能的網絡爬蟲系統。本發(fā)明所要解決的另外一個技術問題是提供該網絡爬蟲系統實現頁面渲染功能 的方法。為實現上述的發(fā)明目的,本發(fā)明采用下述的技術方案一種具備頁面渲染功能的網絡爬蟲系統,其特征在于所述網絡爬蟲系統包括多個信息采集器、頁面分析器、URL過濾器、頁面過濾器、 URL管理器、圖片生成器、URL庫和頁面庫;其中,所述信息采集器位于所述網絡爬蟲系統的底層,與互聯網直接進行交互以獲取 Web頁面,所述頁面分析器與所述信息采集器進行連接,一方面從頁面內容中解析出帶有鏈 接標記的URL,交給所述URL過濾器解析;另一方面將頁面內容解析為文本格式,交給所述 頁面過濾器處理;所述URL過濾器對URL進行限定站點范圍和主題的過濾之后,存入URL庫中;所述 頁面過濾器進行頁面內容的冗余檢測后,將檢測后的頁面存入頁面庫中;所述圖片生成器連接所述URL庫,針對所述URL庫中存儲的URL生成頁面對應的 圖片。其中,所述信息采集器從信息源出發(fā),通過http協議請求,下載Web頁面,所述頁 面分析器分析頁面并提取鏈接,然后所述信息采集器再以迭代的方式訪問網絡。所述信息采集器采用圖的遍歷算法搜索Web頁面。所述URL過濾器利用擴展元數據的語義信息,對從Web頁面中提取出的URL進行 主題相關性預測,按照相關鏈接進行采集、不相關鏈接直接丟棄的原則進行剪枝處理。所述URL管理器一方面從所述URL庫中獲得URL列表,進行任務排列后分配給多 個信息采集器;另一方面從多個信息采集器中獲得新的URL列表,將這些列表保存到所述 URL庫中。一種網絡爬蟲系統實現頁面渲染功能的方法,其特征在于包括如下步驟(1)生成Web頁面的開始標簽;(2)渲染頁面模板中的內容,其中每進入一個標簽,都依次調用所述標簽的各個生 命周期階段;(3)渲染Web頁面中的體;(4)生成Web頁面的結束標簽;(5)清除數據。其中,所述步驟O)中,調用所述標簽的各個生命周期階段是指從上層標簽到下 層標簽的遞歸入口,只有下層標簽渲染結束,進行調用的組件才繼續(xù)后續(xù)階段的操作。所述步驟中,生成結束標簽的操作由控制內嵌標簽執(zhí)行流程的操作代替。一種網絡爬蟲系統實現頁面渲染功能的方法,其特征在于包括如下步驟當發(fā)現一個圖片標簽引用了一張圖片時,向服務器發(fā)出請求;此時繼續(xù)渲染后面 的代碼,服務器返回所述圖片的文件,然后重新渲染這部分代碼。當發(fā)現存在一個JavMcript代碼的〈script〉標簽時,執(zhí)行語句,重新渲染部分代 碼,然后將渲染的結果生成圖片。
本發(fā)明所提供的網絡爬蟲系統不僅能完成一般網絡爬蟲的功能,還可以將網頁直 接進行頁面渲染,并將渲染結果直接用圖片格式加以保存,從而為低成本、高效率地實現頁 面預覽功能奠定技術基礎。
下面結合附圖和具體實施方式
對本發(fā)明作進一步的詳細說明。圖1為本發(fā)明所提供的網絡爬蟲系統的整體組成示意圖;圖2為本網絡爬蟲系統實現網絡爬蟲基本功能的流程示意圖;圖3為本網絡爬蟲系統實現頁面渲染功能的流程示意圖。
具體實施例方式如圖1所示,本發(fā)明所提供的網絡爬蟲系統主要由以下各部分組成1.信息采集器每個信息采集器是一個網頁蜘蛛(Web Spider),處于網絡爬蟲系統的底層,是網 絡爬蟲系統與海量的互聯網信息(如論壇、博客、WAP、文檔、音視頻資料等)直接進行交互 的接口部分。信息采集器的作用是獲取Web頁面。它通常從信息源(如用戶查詢、URL列表 或某一頁面)出發(fā),通過http協議請求,下載Web頁面,頁面分析器分析頁面并提取鏈接, 然后信息采集器再以迭代的方式訪問網絡。在本發(fā)明的一個具體實施例中,信息采集器優(yōu) 選采用圖的遍歷算法(如廣度優(yōu)先或深度優(yōu)先策略)搜索Web頁面。為保證高速獲取Web頁面中的信息,本網絡爬蟲系統在并行機制的基礎上,對各 個信息采集器采用多線程技術。在一般情況下,每個信息采集器能同時啟動數百個線程進 行頁面信息采集。URL管理器采取交織存取的方式管理待采集的URL隊列,向各個信息采集 器分配采集任務,因此可以保證同一個信息采集器最多只有一個線程連接同一個Web服務 器,有效避免該Web服務器因訪問量驟增而出現阻塞甚至宕機。2.鏈接(URL)過濾器在URL庫里存放的是從采集到的頁面中提取出來的所有URL,為避免采集頁面出 現“主題漂移”問題,這些URL在進入URL庫前都必須經過主題相關性預測。我們利用擴展 元數據(即HTML Tag如Anchor等信息)的語義信息,對從采集到的頁面內提取出來的URL 進行主題相關性預測,按照相關鏈接進行采集、不相關鏈接直接丟棄的原則進行剪枝處理, 減少系統采集無關頁面的數量,從而大量節(jié)省系統運行成本,有效提高主題信息搜索的速 度和效率。鏈接過濾器將被預測為指向主題相關頁面的鏈接(URL)入庫存儲,進而作為待 采集URL由URL管理器分配給各個信息采集器采集該URL鏈接所指向的Web頁面。3.頁面過濾器為進一步提高系統的查準率,需要對采集下來的頁面進行主題相關性判斷,也就 是頁面過濾。這實質上是一個文本主題分類的過程。通過去除相關性較小的頁面(小于設 定的閾值),提高系統的查準率。根據全信息理論,自然語言作為認識主體所表述的“事物 運動狀態(tài)及其變化方式”,包括形式、含義和其對認識主體的效用等三方面,分別稱為事物 的語法信息、語義信息和語用信息,而這三者的整體則稱為“全信息”。自然語言文本具有詞 語同義性、詞語多義性等特點,而Web文本是自然語言的一種特殊載體,因此在判斷一篇文本是否與系統的采集主題相關時,我們不但要關心文本的語法信息,還需要關心文本的語 義準確性。本網絡爬蟲系統的頁面過濾器以此為依據,吸收傳統向量空間模型的思想,采用 基于概念的向量空間法進行頁面內容的過濾,通過將詞匯映射到概念一級,從詞所表達的 概念意義層次也就是語義層次對文本進行相關性分析。4.頁面分析器頁面分析器的主要功能是解析抓取下來的頁面內容,可以分為兩部分工作一部 分是解析出帶有鏈接標記的URL,交給URL過濾器解析,提取出鏈接;另一部分是將頁面內 容解析為文本格式,交給頁面過濾器處理。5. URL 管理器URL管理器的主要功能是管理URL任務。一方面URL管理器從URL庫中獲得URL 列表,并將它們進行任務排列后分配給多個信息采集器,另一方面URL管理器從多個信息 采集器中獲得新的URL列表,將這些列表以一定的策略保存到URL庫中。如圖2所示,上述的網絡爬蟲系統在實現網絡爬蟲的基本功能時,首先由URL管理 器啟動信息采集器開始Web頁面的采集工作,并對采集的Web頁面進行存儲。然后由頁面分 析器進行分析,獲得標記和頁面兩部分。其中的標記由送入URL過濾器進行解析,而頁面部 分送入頁面過濾器,由頁面過濾器進行內容冗余檢測后,存入頁面庫中。Web頁面在由URL 過濾器進行限定站點范圍和主題的過濾之后,送入URL庫中。此后,與URL庫連接的圖片生 成器開始工作,針對URL庫中存儲的URL生成頁面對應的圖片。下面對此展開具體的說明。首先,用戶輸入網址向服務器發(fā)出請求,服務器返回html格式的Web頁面;頁面 解析器開始載入html語言的源代碼,如果發(fā)現<head>標簽內有一個<link>標簽引用外部 CSS文件,則發(fā)出CSS文件的請求,服務器返回這個CSS文件;頁面解析器繼續(xù)載入html中 <body>部分的代碼,開始渲染頁面。如圖3所示,本網絡爬蟲系統實現頁面渲染功能的具體步驟是這樣的1.渲染準備階段用于渲染前的準備操作,比如初始化一些數據;2.生成開始標簽用于生成一個Html文件的開始標簽;3.渲染模板該步驟主要用于渲染模板中的內容。這個階段一般會有多個標簽需要渲染,每進 入一個標簽,都會依次調用這個標簽的各個生命周期階段,也就是說,本處是一個從上層標 簽到下層標簽的遞歸入口,只有下層標簽渲染結束,進行調用的組件才會繼續(xù)后續(xù)階段的 操作。4.渲染體與渲染模板相似,也是渲染一段模板中的內容。比如對于a標簽(<a href ="pagelink" >this is body</a>),它的 body 是 “this isbody” 這幾個文字。5.生成結束標簽該步驟一般用于生成一個結束標簽,或者控制內嵌標簽的執(zhí)行流程。6.清除數據其它幾個階段并非經常用到,更多是保證生命周期的完整性。
需要說明的是,當發(fā)現一個<img>標簽引用了一張圖片時,向服務器發(fā)出請求。此 時不必等到圖片下載完,而是繼續(xù)渲染后面的代碼;服務器返回圖片文件。由于圖片占用了 一定面積,影響了后面段落的排布,因此需要回過頭來重新渲染這部分代碼;當發(fā)現存在一 個Javakript代碼的〈script〉標簽時,執(zhí)行語句,重新渲染Javakript執(zhí)行中處理的那 部分頁面代碼;然后由圖片生成器將渲染的結果生成圖片。上面以html格式的Web頁面為例對本發(fā)明作了說明,但本發(fā)明所提供的具備頁面 渲染功能的網絡爬蟲系統并不限于處理html格式的頁面,其它格式的Web頁面也是可以直 接處理的。利用本發(fā)明,當我們根據網頁的地址進行檢索后,不僅可以了解該頁面的基本內 容,更重要的是能夠看到其基本的顯示效果,從而更多地了解整個頁面的內容。以上對本發(fā)明所提供的具備頁面渲染功能的網絡爬蟲系統及其實現方法進行了 詳細的說明。對本領域的技術人員而言,在不背離本發(fā)明實質精神的前提下對它所做的任 何顯而易見的改動,都將構成對本發(fā)明專利權的侵犯,將承擔相應的法律責任。
權利要求
1.一種具備頁面渲染功能的網絡爬蟲系統,其特征在于所述網絡爬蟲系統包括多個信息采集器、頁面分析器、URL過濾器、頁面過濾器、URL管 理器、圖片生成器、URL庫和頁面庫;其中,所述信息采集器位于所述網絡爬蟲系統的底層,與互聯網直接進行交互以獲取Web頁 面,所述頁面分析器與所述信息采集器進行連接,一方面從頁面內容中解析出帶有鏈接標 記的URL,交給所述URL過濾器解析;另一方面將頁面內容解析為文本格式,交給所述頁面 過濾器處理;所述URL過濾器對URL進行限定站點范圍和主題的過濾之后,存入URL庫中;所述頁面 過濾器進行頁面內容的冗余檢測后,將檢測后的頁面存入頁面庫中;所述圖片生成器連接所述URL庫,針對所述URL庫中存儲的URL生成頁面對應的圖片。
2.如權利要求1所述的網絡爬蟲系統,其特征在于所述信息采集器從信息源出發(fā),通過http協議請求,下載Web頁面,所述頁面分析器分 析頁面并提取鏈接,然后所述信息采集器再以迭代的方式訪問網絡。
3.如權利要求1或2所述的網絡爬蟲系統,其特征在于所述信息采集器采用圖的遍歷算法搜索Web頁面。
4.如權利要求1所述的網絡爬蟲系統,其特征在于所述URL過濾器利用擴展元數據的語義信息,對從Web頁面中提取出的URL進行主題 相關性預測,按照相關鏈接進行采集、不相關鏈接直接丟棄的原則進行剪枝處理。
5.如權利要求1所述的網絡爬蟲系統,其特征在于所述URL管理器一方面從所述URL庫中獲得URL列表,進行任務排列后分配給多個信 息采集器;另一方面從多個信息、采集器中獲得新的URL列表,將這些列表保存到所述URL 庫中。
6.一種如權利要求1所述的網絡爬蟲系統實現頁面渲染功能的方法,其特征在于包括 如下步驟(1)生成Web頁面的開始標簽;(2)渲染頁面模板中的內容,其中每進入一個標簽,都依次調用所述標簽的各個生命周 期階段;(3)渲染Web頁面中的體;(4)生成Web頁面的結束標簽;(5)清除數據。
7.如權利要求6所述的網絡爬蟲系統實現頁面渲染功能的方法,其特征在于所述步驟O)中,調用所述標簽的各個生命周期階段是指從上層標簽到下層標簽的遞 歸入口,只有下層標簽渲染結束,進行調用的組件才繼續(xù)后續(xù)階段的操作。
8.如權利要求6所述的網絡爬蟲系統實現頁面渲染功能的方法,其特征在于所述步驟(4)中,生成結束標簽的操作由控制內嵌標簽執(zhí)行流程的操作代替。
9.一種如權利要求1所述的網絡爬蟲系統實現頁面渲染功能的方法,其特征在于包括 如下步驟當發(fā)現一個圖片標簽引用了一張圖片時,向服務器發(fā)出請求;此時繼續(xù)渲染后面的代 碼,服務器返回所述圖片的文件,然后重新渲染這部分代碼。
10.如權利要求9所述的網絡爬蟲系統實現頁面渲染功能的方法,其特征在于 當發(fā)現存在一個JavaScript代碼的〈script〉標簽時,執(zhí)行語句,重新渲染部分代碼, 然后將渲染的結果生成圖片。
全文摘要
本發(fā)明公開了一種具備頁面渲染功能的網絡爬蟲系統,同時也涉及該網絡爬蟲系統實現頁面渲染功能的方法。該網絡爬蟲系統包括多個信息采集器、頁面分析器、URL過濾器、頁面過濾器、URL管理器、圖片生成器、URL庫和頁面庫,不僅能完成一般網絡爬蟲的功能,還可以將網頁直接進行頁面渲染,并將渲染結果直接用圖片格式加以保存,從而為低成本、高效率地實現頁面預覽功能奠定技術基礎。利用本發(fā)明,當我們根據網頁的地址進行檢索后,不僅可以了解該頁面的基本內容,能夠看到其基本的顯示效果,從而更多地了解整個頁面的內容。
文檔編號G06F17/30GK102054028SQ20101059080
公開日2011年5月11日 申請日期2010年12月10日 優(yōu)先權日2010年12月10日
發(fā)明者黃斌 申請人:黃斌