基於視覺的web頁面萃取方法
2023-09-14 20:14:00 3
專利名稱:基於視覺的web頁面萃取方法
技術領域:
本發明涉及一種web頁面萃取方法,尤其涉及一種基於視覺分析對web頁面進行分解,從中提取有價值數據的web頁面內容萃取方法,屬於網頁信息採集技術領域。
背景技術:
目前,隨著網際網路的高速發展,web網絡已經成為世界上最大的信息來源。web網絡的發展給人類生活帶來了巨大的方便,人們可以跨越時間和空間界限來共享大量信息。 但是,整個web網絡是由無數的web頁面構成的。web頁面的海量性、多樣性、動態性和半結構化等特性增加了對其內容進行自動處理的難度。如何有效獲取這些web頁面中的內容為我們所用仍然是大家面臨的共同問題。在專利號為ZL 200410057064. 1的中國發明專利中,富士通株式會社提出了一種網頁信息塊提取裝置和方法。在該發明中,首先生成網頁的結構信息塊樹,並對結構信息塊進行分類歸併和合併,對結果塊的語義進行標記,從而根據內容和功能把網頁分割為信息塊。根據該技術方案,網頁處理的粒度從整個頁面擴展為頁面內的信息塊,使網頁更容易由機器處理。在申請號為200910139745. 5的中國發明專利申請中,富士通株式會社進一步提出了一種網頁內容提取方法和裝置,其中該網頁內容提取方法包括如下步驟對網頁的圖片進行視覺布局分析,以將所述圖片分割為至少一個布局塊;對每個布局塊進行光學字符識別,以生成所述布局塊的識別文本;對所述網頁進行分析,以建立所述網頁的文檔對象模型樹;利用所述文檔對象模型樹中的文本節點的真實文本與所述布局塊的識別文本之間的對應關係,將所述文檔對象模型樹中的每個文本節點映射到所述布局塊之一中;以及至少利用所述布局塊在所述網頁中的位置信息來提取所述網頁的正文內容。該技術方案開創性地融合了圖像布局分析和自然語言處理的相關技術,形成了一個全自動、高效、準確的網頁內容提取方案。另外,在專利號為ZL 200810066432. 7的中國發明專利中,騰訊公司也提出了一種網際網路網頁清洗方法。該方法包括下述步驟分析輸入的網頁,對網頁標籤內容自動糾錯,建立文檔對象模型樹;保留所述文檔對象模型樹中具有表示內容的HTML的塊元素結點,生成與所述文檔對象模型樹對應的結構塊樹;在所述結構塊樹的基礎上按照定義的網頁類型對輸入的網頁進行分類;根據輸入的網頁所屬的網頁類型,對其進行語義塊分析,提取並輸出重要塊及其文本信息。
發明內容
本發明所要解決的技術問題在於提供一種基於視覺分析的web頁面萃取方法。該方法利用視覺因素對web頁面進行分析,可以有效提取web頁面中的有價值數據。為實現上述的發明目的,本發明採用下述的技術方案一種基於視覺分析的web頁面萃取方法,其特徵在於包括如下步驟
(1)確認web頁面中給定的網頁地址已經下載完成,並且經完整展示後生成DOM 樹;(2)基於所述DOM樹將web頁面拆分成在視覺上無法進一步拆分的塊元素;(3)從主體塊在所述DOM樹中對應的根節點出發,遍歷各個視覺塊在所述DOM樹中對應的塊節點,從而獲得所述web網頁中的有價值數據。其中,在步驟(1)中,在web頁面中的IFame、Frame已經下載完成,所需要的 JavaScriptXSS已經下載完成,圖片參數已經獲得且Ajax已經執行完成的情況下,進入步驟(2)。所述步驟O)中,根據所述DOM樹中的標籤名稱決定所述塊元素是否進行拆分。或者,根據邊框內容決定所述塊元素是否進行拆分。或者,根據背景色決定所述塊元素是否進行拆分。或者,根據標籤內部是否有明確的分割條決定所述塊元素是否進行拆分。所述步驟⑵中,對於標籤名稱一樣、類別相同,字體、字號、字重、顏色都相似的相似塊進行合併。所述步驟(3)中,在有價值數據為標題的情況下,對塊節點中包括長度、字號、字重、對齊方式、文本長度在內的各項內容進行分別加權,認定其中權值最大的視覺塊為標題塊。所述步驟(3)中,在有價值數據為正文的情況下,首先以所述標題塊為基礎向下掃描,直到掃描到明確的結束塊或者掃描完主體塊為止;其次,推測統計文字信息;再次,找到符合統計要求的主體字符,以背景與主體塊背景一致的字符作為正文的開始,接著遍歷所述標題塊在所述DOM樹中對應節點的兄弟節點,在滿足預設條件後認為找到正文的結尾處;最後,合併正文開始處到結尾處為正文塊。所述預設條件為①字符覆蓋是否達到主體字符的90%以上,②是否有明確的分割線,③是否是分頁塊;在上述三個條件均為滿足的情況下認為滿足預設條件。本發明所提供的web頁面萃取方法能夠充分使用web頁面本身的視覺因素,並結合DOM樹進行頁面語義分塊,不僅有效彌補了現有技術中僅使用DOM樹所帶來的一些問題, 而且顯著提高了 web頁面萃取的效率和質量。
下面結合附圖和具體實施方式
對本發明作進一步的詳細說明。圖1為本發明的一個實施例中使用的資訊網頁截圖;圖2為使用本web頁面萃取方法提取網頁中標題的操作流程圖;圖3為使用本web頁面萃取方法提取網頁中正文的操作流程圖。
具體實施例方式當用戶觀察web頁面的時候,他總是自然而然地將一個語義塊作為一個單一對象來看待,而不會關心web頁面的內部結構是如何描述的。另一方面,用戶在分辨web頁面的語義塊的時候,通常情況下會使用一些視覺因素來進行幫助,例如背景顏色、字體顏色和大小,字重、邊框等等。如果能夠充分使用web頁面本身的視覺提示,並結合DOM(文檔對象模型)樹進行頁面語義分塊,可以有效彌補僅使用DOM樹所帶來的一些問題。這就是本發明所提供的web頁面萃取方法的基本思路,下面對此展開詳細的說明。實施本web頁面萃取方法的前提條件是給定的網頁地址(url)已經下載完成,並且經完整展示後生成DOM樹。這其中具體包括如下內容> IFame、Frame等已經下載完成IFame是指web頁面中內嵌的框架,Frame是指web頁面中的框架。由於待分析的部分內容在Frame裡面,因此必須要等待IFame、Frame等下載完成。>所需要的JavaScript、CSS已經下載完成這是因為CSS (Cascading Style Sheets,層疊樣式表)會嚴重影響web頁面的可視化元素,JavaScript ( 一種廣泛用於客戶端web開發的腳本語言,常用來給web頁面添加動態功能)會部分影響web頁面的數據。>圖片參數已經獲得該要求的主要目的是分析圖片的長寬等參數。> Ajax已經執行完成Ajax 全稱為 Asynchronous JavaScript and XML (異步 JavaScript 禾口 XML),是一種創建交互式網頁應用的網頁開發工具。Ajax會影響web頁面中部分內容的生成。在上述步驟完成之後,接下來的工作是生成web頁面的視覺塊。該視覺塊的生成過程遵循如下的邏輯順序DOM樹一塊元素一相似塊合併一邏輯塊合併一過濾塊操作DOM是Document Object Model (文檔對象模型)的縮寫。根據W3C DOM規範,DOM 是一種與瀏覽器、平臺、語言無關的接口,使得用戶可以訪問web頁面的其他標準組件。DOM 樹是指由文檔對象模型生成的樹狀結構。塊元素是指將html格式的web頁面拆分成的塊狀結構。每一個塊元素在視覺上無法進一步拆分。塊元素的內部屬性應該相似的,例如都是文本、連結或者圖片等。生成塊元素的拆分原則為>根據DOM樹中的標籤名稱來決定是否進行拆分例如Block類型通常進行拆分,Inline類型通常不進行拆分。如果Block類型的標籤內部都是文本節點,不含有其他的Block類型,則無需拆分。>根據邊框內容決定是否拆分例如內部只是列表和文字,沒有其他更小的矩形框,不進行拆分;內部還存在更小的局限邊框,或者是背景色反差比較大,有明確的分割條,進行進一步拆分。>根據背景色決定是否拆分例如背景色反差比較大,且面積較大,進行進一步拆分;反之不拆分。>根據標籤內部是否有明確的分割條決定是否拆分例如如果一個標籤內有明確的分割條,或者內部有一條細線,或者有一整條背景色比較深,或者有背景圖片、圖片看上去是一條線,則遇到這種標籤需要繼續進行拆分。>由於IFrame的特殊性,在分析的時候可能預先不知道其寬高,且不能像其他節點那樣進行遍歷,故需要進行拆分。生成塊元素後,為了進行內容信息分析,需要將相似塊進行合併。相似塊是指標籤的名稱一樣、類別相同,字體、字號、字重、顏色都非常相似。例如資訊的正文通常都是由許多
標籤組成,如果正文的主標籤內部有相關新聞列表或者評論的區域,相應的塊元素中會有大量相互聯繫的
標籤,可以根據各自的特性進行合併。另外,兩個塊元素的標籤在視覺上可能完全不相同,但是它們之間有信息邏輯關係。這種情況稱為邏輯塊,例如>標題塊、正文塊,邏輯合併就是正文主體塊;>標題塊、列表內容塊,邏輯合併就是列表主體塊;>圖片塊、短文本塊,邏輯合併就是圖片信息塊;為了降低運算的維度,邏輯塊生成後需要對沒有內容塊及層數過深的塊進行裁剪。裁剪的結果稱為過濾塊。本發明中所說的視覺塊是進行DOM樹一塊元素一相似塊合併一邏輯塊合併一過濾塊操作等之後,生成的HLDOM樹,用繪圖方式將葉子節點畫出來的結果。對於相似塊合併之後的視覺塊可以進一步進行基於信息內容的塊定義,例如頁眉塊、頁腳塊、正文主體塊、相關連結塊、作者塊、過濾塊等。邏輯塊是在進行相似塊合併後, 視覺塊開發者根據關注點所在,對合併塊進行信息邏輯組合後生成的視覺塊。過濾塊是屬於視覺塊的,只是對某個視覺塊開發者認為是雜質的就定義為過濾塊。例如將視覺塊高度小於17個像素的定義為過濾塊;將版權聲明塊定義為過濾塊等。需要說明的是,對於任何web頁面塊元素而言,相似塊是必然存在的。過濾塊是視覺塊開發者對不需要關注的視覺塊的定義,因此並不是必然存在的。表1顯示了在生成視覺塊的過程中,影響分塊的一些具體因素。
權利要求
1.一種基於視覺分析的web頁面萃取方法,其特徵在於包括如下步驟(1)確認web頁面中給定的網頁地址已經下載完成,並且經完整展示後生成文檔對象模型樹;(2)基於所述文檔對象模型樹將web頁面拆分成在視覺上無法進一步拆分的塊元素;(3)從主體塊在所述文檔對象模型樹中對應的根節點出發,遍歷各個視覺塊在所述文檔對象模型樹中對應的塊節點,從而獲得所述web網頁中的有價值數據。
2.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟(1)中,在web頁面中的IFame、Frame已經下載完成,所需要的Javakript、 CSS已經下載完成,圖片參數已經獲得且Ajax已經執行完成的情況下,進入所述步驟O)。
3.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟O)中,根據所述文檔對象模型樹中的標籤名稱決定所述塊元素是否進行拆分。
4.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於 所述步驟O)中,根據邊框內容決定所述塊元素是否進行拆分。
5.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於 所述步驟O)中,根據背景色決定所述塊元素是否進行拆分。
6.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟O)中,根據標籤內部是否有明確的分割條決定所述塊元素是否進行拆分。
7.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟⑵中,對於標籤名稱一樣、類別相同,字體、字號、字重、顏色都相似的相似塊進行合併。
8.如權利要求1所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟(3)中,在有價值數據為標題的情況下,對塊節點中包括長度、字號、字重、對齊方式、文本長度在內的各項內容進行分別加權,認定其中權值最大的視覺塊為標題塊。
9.如權利要求8所述的基於視覺分析的web頁面萃取方法,其特徵在於所述步驟(3)中,在有價值數據為正文的情況下,首先以所述標題塊為基礎向下掃描, 直到掃描到明確的結束塊或者掃描完主體塊為止; 其次,推測統計文字信息;再次,找到符合統計要求的主體字符,以背景與主體塊背景一致的字符作為正文的開始,接著遍歷所述標題塊在所述文檔對象模型樹中對應節點的兄弟節點,在滿足預設條件後認為找到正文的結尾處;最後,合併正文開始處到結尾處為正文塊。
10.如權利要求9所述的基於視覺分析的web頁面萃取方法,其特徵在於所述預設條件為①字符覆蓋是否達到主體字符的90%以上,②是否有明確的分割線,③是否是分頁塊;在上述三個條件均為滿足的情況下認為滿足預設條件。
全文摘要
本發明公開了一種基於視覺分析的web頁面萃取方法,包括如下步驟(1)確認web頁面中給定的網頁地址已經下載完成,並且經完整展示後生成文檔對象模型樹;(2)基於文檔對象模型樹將web頁面拆分成在視覺上無法進一步拆分的塊元素;(3)從主體塊在文檔對象模型樹中對應的根節點出發,遍歷各個視覺塊在文檔對象模型樹中對應的塊節點,從而獲得web網頁中的有價值數據。本方法能夠充分使用web頁面本身的視覺提示,並結合文檔對象模型樹進行頁面語義分塊,顯著提高了web頁面萃取的效率和質量。
文檔編號G06F17/30GK102253979SQ20111017153
公開日2011年11月23日 申請日期2011年6月23日 優先權日2011年6月23日
發明者王東勝 申請人:天津海量信息技術有限公司