陳建國
基于Web結構的網站新聞采集系統(tǒng)的設計與實現(xiàn)
陳建國1,2
(1. 湖南大學軟件學院,湖南,長沙 410082;2. 廈門理工學院,福建,廈門 361021)
在深入研究網絡信息采集技術的基礎上,提出一個基于Web結構的新聞采集模型。該模型加載采集入口地址后,通過信息采集和過濾算法確定新聞列表頁,結合正則表達式技術自動識別新聞內容頁的鏈接地址,訪問目標新聞內容頁,使用采集算法自動提取新聞信息數(shù)據。同時,它可以過濾在此頁面中嵌入的廣告等信息。實踐結果表明,該模型工作良好,可以自動化、高效率地采集新聞信息。
信息采集;Web結構;正則表達式;數(shù)據挖掘;新聞采集
Web信息采集是指通過Web頁面之間的鏈接關系,從Web上自動地獲取頁面信息,并且隨著鏈接,使用廣度優(yōu)先遍歷算法不斷地向所需要的Web頁面查找、擴展的過程[1]。
新聞采集是Web信息采集在網絡新聞領域的應用[2]。其核心實現(xiàn)過程如下:由采集入口URL開始,將這些URL放入一個采集隊列,順序讀取URL以獲取目標網頁,調用采集和過濾規(guī)則在信息頁面中進行信息識別和提取,最后將采集得到的新聞信息和相關數(shù)據保存到數(shù)據庫或其他進一步加工。
目前,國內外關于Web信息采集技術的研究已取得一定成果,總結如下:
基于自然語言處理[3]:主要適用于含有大量文本的Web頁面,將Web文檔視為文本進行處理的,抽取的實現(xiàn)沒有利用Web文檔獨特于普通文本的層次特性.獲得有效的抽取規(guī)則需要大量的樣本學習[4]。
基于包裝器歸納方式的信息抽取[5]:該系統(tǒng)語義和模式信息是用戶附加的,通過感興趣信息的左右邊界實現(xiàn)信息的定位,該方法僅僅使用語義項的上下文來定位信息并沒有使用語言的語法約束[6]。
基于本體的信息采集方法[7]:利用對數(shù)據本身的描述信息實現(xiàn)抽取,較少依賴網頁結構。
基于查詢的Web信息提取[8]:使用Web的相關技術解決Web的問題,由于Web抽取規(guī)則的形式和感興趣信息的定位方式各不相同,因此均不具有通用性。
基于語義信息抽取技術[9]:由于HTML標志缺乏對數(shù)據本身的描述,又因為數(shù)據受描述語法,文化區(qū)域和應用領域等方面的限制,缺乏足夠的語義信息,因此影響抽取效率和準確度。
雖然網頁類型和結構不同,但一個網站中的各頁面結構具有一些特定規(guī)則,如頁面內容往往是以一種結構化的方式來組織,所以我們可以根據web結構進行網絡新聞信息的提取和采集,研究web結構,結合正則表達式,通過頁面結構的模式匹配實現(xiàn)數(shù)據提取和收集。本文的主要任務:
(1)設計一個基于Web結構的新聞采集系統(tǒng)模型;
(2)頁面采集算法,信息塊采集算法和信息塊過濾算法研究;
(3)實現(xiàn)基于Web結構的新聞采集系統(tǒng)。
本系統(tǒng)通過采集入口和頁面采集算法進入新聞列表頁,調用信息塊采集方法確定新聞內容頁的URL列表,然后自動加載URL列表中的目標頁,調用信息采集和過濾算法反復采集新聞內容的信息,最后存放到相應數(shù)據庫中。本系統(tǒng)支持采集入口設置,采集規(guī)則和過濾規(guī)則設置,并支持批量采集功能,采集時間和周期可調節(jié)。
本系統(tǒng)所用到的信息采集和過濾算法主要包括以下三種:
(1)頁面采集算法:通過URL加載一個頁面,然后獲得頁面的源代碼[10]。該算法將用于加載新聞列表頁和新聞內容頁。核心算法代碼如下(C#):
(2)信息塊采集算法:該算法接收三個參數(shù):信息塊代碼、采集開始標志和采集結束標志;使用正則表達式技術進行信息匹配,以確定要采集的信息塊。核心算法代碼如下(C#):
(3)信息塊過濾算法:該算法接收三個參數(shù):信息塊代碼、過濾開始標志和過濾結束標志;使用正則表達式技術進行信息匹配,以確定要過濾的信息塊[11]。
在這里進行采集入口的設置,我們可以設置一個新聞網站的主頁作為采集入口,調用頁面采集算法提取新聞列表頁路徑代碼。
從新聞列表頁中采集新聞內容頁的鏈接URL的工作有兩個步驟。首先,刪除無關信息,提取新聞列表信息塊代碼,然后從列表信息塊代碼中標識新聞內容頁面地址,制定地址標準格式來修訂和改善的新聞鏈接地址。
(1)獲取新聞列表頁代碼
獲取新聞列表頁面代碼,人工分析和識別頁面代碼,找到新聞列表信息塊的起始標志和結束標志。調用采集算法,輸入頁面代碼、信息塊起始標志和結束標志,系統(tǒng)根據獲得新聞列表信息塊代碼。
(2)新聞鏈接網址采集
對獲取的信息塊代碼重新進行人工分析和識別,找到新聞鏈接信息的代碼,標志起始和結束標記[12-13]。調用采集和過濾算法,輸入信息塊代碼列表、新聞鏈接起始標志和結束標志,系統(tǒng)自動刪除無關信息,準確讀取新聞內容頁鏈接URL列表。
(1)獲取新聞內容頁代碼:調用采集算法從新聞鏈接URL列表中的各項找到新聞內容頁,獲取新聞內容頁面代碼。
(2)新聞信息采集:手動分析和識別頁面代碼,標記各新聞信息塊的開始和結束標志,如標題、來源,內容,創(chuàng)建時間,調用信息采集和過濾算法,提取有關的新聞信息,然后保存到數(shù)據庫或其他媒介中。
本文采用作者自主開發(fā)的“銳龍新聞采集系統(tǒng)”作為實現(xiàn)案例,“銳龍新聞采集系統(tǒng)”是新聞網站系統(tǒng)的一個子系統(tǒng)。該系統(tǒng)采用B/S模式,主要用于新聞發(fā)布網站的新聞信息采集工作,方便新聞稿件管理,大大提高新聞稿件編輯的效率和準確性,有很強的適用性和推廣價值。
通過友好的可視化界面進行采集入口地址的設置,界面如圖1所示。本實例的采集入口設置如下:http://www.ruilongit.com/News_List.aspx?NT_ID=1。
圖1 采集入口設置
Fig.1 Acquisition entrances setting
(1)新聞列表頁采集:分析和確定的新聞列表頁中的代碼,找到新聞列表信息塊的開始和結束目標,提取新聞列表,作為新聞內容頁鏈接網址的采集源。
新聞列表信息塊的起始標志:
新聞列表信息塊的結束標志:
(2)新聞內容頁URL采集:通過鏈接地址采集算法進行分析和識別源代碼,找到新聞內容頁鏈接信息塊的開始和結束標志,獲取新聞內容頁的URL列表。新聞內容頁URL采集設置如圖2所示。
新聞內容頁鏈接信息塊的起始標志: