程倩楠,譚龍,李浩飛
山東師范大學
面向BIU的網頁解析
程倩楠,譚龍,李浩飛
山東師范大學
隨著大數據時代的到來,互聯網已經成為人們最大的信息來源之一,對于網頁處理多采用結構化方法。現有的面向結點的網頁解析方法分割粒度過小,容易割裂文字的語義相關性;而基于分塊的網頁解析器無法過濾文字內部的噪音信息。針對以上兩種傳統結構化方法的不足,我們提出了一種面向基本信息單元(Basic Information unit)的網頁解析方法。本文給出了BIU的定義,利用改進后的DOM解析工具生成了網頁DOM樹,通過剪枝和BIU識別等操作步驟,最終得到了以基本信息單元為粒度的網頁結構,適合用于網頁內容的提取。
結構化;基本信息單元;BIU;解析粒度;DOM解析工具
互聯網上蘊含的海量信息,成為人們重要的數據來源。非結構化的網頁處理方法無法充分利用頁面特征提取頁面信息,而面向DOM結點與面向分塊的結構化方法解析粒度的劃分也存在不合理性。下面我們介紹一種以基本信息單元為分割粒度的網頁解析方法。
通過分析HTML的內容及結構,我們發現,網頁的行與段內部可能包含多個DOM結點,但構成了一個完整的句子,其中的文本信息語義連續,具有較好的信息關聯性,適合作為網頁解析粒度。為此我們定義如下:
定義1:在HTML中,被換行符分隔的連續文本稱為一個網頁的基本信息單元(Basic Information Unit),簡記為BIU。
HTML中的換行符分為顯示與隱式兩種,顯示的換行符標簽為<br>,隱式的換行符標簽包括布局標簽<head><body><div><ta?ble>等,以及文本標簽<h1><h2><p>等。
2.1 改進傳統DOM解析工具
DOM樹是HTML網頁的結構化表示形式,也是網頁在內存中的組織形式,它以層次結構將網頁信息片段作為結點組織起來。一般通過對HTML文檔進行詞法分析和語法分析實現網頁DOM解析。由于互聯網上存在著大量不符合HTML語法規范的網頁,目前,一些DOM解析器也具備較好的容錯性,如CTidy軟件,能夠自動識別HTML中的不規范之處,并發出警告,進行自動修正。
為了提高網頁解析的效率與準確性,本文對CTidy軟件做了如下部分改進:
(1)改變網頁解析的輸入方式,由HTML文檔輸入變為字符串輸入。
(2)跳過無法解析的錯誤網頁,繼續下面的網頁解析工作,而不是進行報錯終止,保證運行的連貫性。
(3)刪除script標簽下的腳本文字,只留下網頁可顯示的信息。
(4)去除對部分轉義字符的解析。
2.2 基本信息單元的識別
在以上DOM解析的基礎上,我們進行基本信息單元的識別工作。由于HTML結構具有靈活性,所以對基本信息單元的識別也存在一定的挑戰性。我們必須清楚并不是所有的HTML換行標簽都能作為分割基本信息單元的邊界,因此BIU識別的主要任務就是尋找有效的換行符。
本文將DOM樹的剪枝與BIU的識別相結合,通過以下四個步驟,實現面向BIU的網頁解析,圖1演示了這個過程。
(1)DOM樹剪枝
規則一:若葉結點不含文字內容,則刪除此結點,旨在過濾掉網頁中的非文本噪音結點,對應圖1中的(1)a。
規則二:若葉結點的父節點不存在兄弟結點,則用當前頁葉結點代替其父節點,旨在消除無效換行符,對應圖1中的(1)b。
(2)識別BIU
進行以上剪枝后,再為各文本結點尋找對應的換行符結點,即在DOM樹中尋找距離文本結點最近的換行結點。若有文本結點對應相同的換行符結點,則這些文本結點屬于同一個基本信息單元。如圖1中(2)所示,其中包含三個換行符結點,對應于三個基本信息單元。
(3)合并文本結點
將屬于同一BIU的文本結點合并,此時DOM中又會出現非文本結點。對應圖1中(3)。
(4)再次剪枝
為了消除新出現的非文本噪音結點,按步驟1對DOM樹再次剪枝。
最終實現樹中的每個葉結點均為一個基本信息單元,對應圖1中(4)。
經過上述步驟,我們將網頁分割為基本信息單元的集合,克服了DOM結點過于瑣碎的缺點,便于網頁正文的提取和網頁信息的抽取。
本文針對傳統基于DOM結點和網頁塊進行HTML解析的缺點,提出一種適用于內容提取的網頁信息單元組織結構。首先,我們對傳統的DOM解析器進行改進,增強DOM解析的效率和準確性。其次,對生成DOM樹同時進行剪枝和BIU的識別操作,最終得到以基本信息單元為粒度的網頁結構。基本信息單元的內容具有較強的語義關聯性,便于網頁正文提取及信息抽取等后續操作。
[1]于滿全,陳鐵睿,徐洪波.基于分塊的網頁信息解析器的研究與設計.計算機應用.2005
[2]王璟琦.基于內容單元的網頁解析與內容提取[D].黑龍江:哈爾濱工業大學,2008.12.1
程倩楠(1997-),女,漢族,山東泰安人,本科,山東師范大學信息科學與工程學院,研究方向:計算機信息技術。