合理的使用模式能大大提高程序的可重復使用率,同時也減少了后期維護的成本。在對應某一個網站的信息抓取時,主要分為3步:(1)首先根據要抓取的新聞類型的地址,通過相應的HTMLParser表達式,從而獲得特定新聞類型的URL地址;(2)把該URL地址集合傳遞給信息提取模塊,該信息提取模塊根據新聞模板的規則抓取具體的新聞信息;(3)每個網站都有新聞類信息,但對應一些特定的信息,如視頻新聞,供求信息,則不是每個網站都會開設,也就是說在抓取的時候要根據需要給抓取程序的實例中初始化特定的接口,來實現特定的功能。在抓取時,步驟(1)和(2)構成了修飾模式,因為在步驟(2)的程序中,需要處理相應的URL,而此URL正產生于步驟(1)。以上是單個Seed的提取流程。當程序啟動時,會依次讀入Seed表的觸發器,觸發相對應新聞地址提取類實例,這樣就可以將多個類的實例化任務交給工廠程序來完成,也就是把多個Seed自動放到任務隊列里。這樣做是為了提高系統的可維護性,一旦需要抓取新的Seed的時候,只需要修改工廠程序即可。
利用工廠模式來初始化每個網站對應的抓取實例,不僅降低了程序的耦合性,同時可以根據每個網站的特點,設一些特殊信息的抓取接口,極大地提高系統的個性化抽取這個特點,信息提取的時候根據此模式策略來提取信息。Spring2.x的XMLSchema方式提供了簡潔的事務配置策略,借助于aop,tx兩個命名空間的幫助,系統可以非常方便地為業務邏輯組件配置事務管理。借助于Spring2.x的事務管理,當在抓取時候拋出異常,Spring事務框架就會自動回歸事務,使數據庫信息返回到抓取前的狀態。當程序在Tomcat容器內配置成功后,啟動Tomcat服務器,采集程序會在指定的時刻自動按照系統流程采集網頁信息,并持久化到數據庫中對應的數據表。在此需要說明的是,本系統保存了正文內的一些html標簽,這是為了讓正文信息在新的頁面生成時能夠自動組織。