一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法
【專利摘要】本發明公開一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法,所述方法包括:A.根據不同的內容和網站特點,對爬取內容進行細粒度切分并分別制作各爬蟲解析模板文件,設置網絡爬蟲分別結合各爬蟲解析模板文件形成用于執行爬取任務的各采集模塊;B.多個節點服務器上分別部署所述網絡爬蟲,每個節點服務器分別設置有用于調度爬取任務的調度器;C.所述調度器按照預先定義的調度策略調用關聯的采集模塊執行爬取任務進行數據采集。本發明通過對爬取內容進行細粒度切分,實現任務的高并發執行,采取負載均衡策略,充分利用了服務器資源,爬取效率得到明顯提高,而且避免了單機故障造成的系統可靠性不高的問題,保障了系統高可靠性運行。
【專利說明】一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法
【技術領域】
[0001]本發明涉及搜索引擎【技術領域】,尤其涉及一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法。
【背景技術】
[0002]隨著互聯網信息的爆炸式增長,傳統的網絡爬蟲采集數據的方式已經逐漸顯示出劣勢。傳統的網絡爬蟲采集數據時任務沒有細粒度的切分,耗時比較長,服務器CPU、內存和網絡帶寬的限制,數據爬取效率比較低下,而且容易出現單點故障。
[0003]因此,現有技術還有待于改進和發展。
【發明內容】
[0004]鑒于上述現有技術的不足,本發明的目的在于提供一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法,旨在解決目前網絡爬蟲采集數據方法效率低,耗時長的問題。
[0005]本發明的技術方案如下:
一種網絡爬蟲多任務執行和調度方法,其中,所述方法包括:
A、根據不同的內容和網站特點,對待爬取內容進行細粒度切分并根據切分后內容分別制作各爬蟲解析模板文件,設置網絡爬蟲分別結合各爬蟲解析模板文件形成用于執行爬取任務的各采集模塊;
B、多個節點服務器上分別部署所述網絡爬蟲,每個節點服務器分別設置有用于調度爬取任務的調度器;
C、所述調度器按照預先定義的調度策略調用關聯的采集模塊執行爬取任務進行數據米集。
[0006]所述的網絡爬蟲多任務執行和調度方法,其中,所述步驟A中根據不同的內容和網站特點,對待爬取內容進行細粒度切分具體為:
當所述待爬取內容包括多個類型相同的網站時,將多個類型相同的網站切分為單個網
站;
或者,當單個網站包含多個內容不同的版塊時,將單個網站切分為不同的版塊;
或者,當單一板塊中包含多個頁面時,將單一板塊切分為多個頁面。
[0007]所述的網絡爬蟲多任務執行和調度方法,其中,所述切分后的內容之間無關聯性,所述各采集模塊分別對應關聯各爬取任務。
[0008]所述的網絡爬蟲多任務執行和調度方法,其中,所述各爬取任務之間無關聯性,每一爬取任務通過一獨立線程完成。
[0009]所述的網絡爬蟲多任務執行和調度方法,其中,所述預先定義的調度策略包括: 指定所述爬取任務在一固定的節點服務器上執行;
按照所述節點服務器節點等比原則在多個節點服務器中隨機分配爬取任務;
根據所述多個節點服務器當前的資源信息,優先選擇資源利用率低的節點服務器執行爬取任務。
[0010]所述的網絡爬蟲多任務執行和調度方法,其中,所述預先定義的調度策略具體設置為:
預先設置并存儲一信息列表,所述信息列表中存儲有所述節點服務器的IP、端口信息、爬取任務信息;讀取所述信息列表獲取爬取任務與節點服務器的對應關系,按照所述對應關系在相應的節點服務器上的執行爬取任務;
設置所述各節點服務器節點權重均為1,按照該等比原則在多個節點服務器中隨機分配爬取任務;
定期獲取所述多個節點服務器當前的CPU、內存資源信息,根據所獲取的資源信息優先選擇資源利用率低的節點服務器執行爬取任務,若存在資源利用率相同的節點服務器,則在該類節點服務器中隨機分配爬取任務。
[0011]所述的網絡爬蟲多任務執行和調度方法,其中,所述方法還包括:設置一用于保存爬取任務信息的數據庫,所述數據庫分別與所述多個節點服務器相連接,所述節點服務器上的各調度器通過各自獨立的線程定期檢查所述數據庫。
[0012]所述的網絡爬蟲多任務執行和調度方法,其中,所述步驟C中所述調度器按照預先定義的調度策略調用關聯的采集模塊之前還包括:
所述節點服務器第一次運行時,將所獲取的爬取任務信息初始化到所述數據庫。
[0013]所述的網絡爬蟲多任務執行和調度方法,其中,所述步驟C具體為:到爬取任務觸發時間時,按照預先定義的調度策略,所述服務器節點的調度器觸發自己的觸發器獲取數據庫鎖,獲取所述數據庫鎖的調度器調用關聯的采集模塊,網絡爬蟲加載所述爬蟲解析模板文件采集數據,同時更新爬取任務狀態并持久化到所述數據庫。
[0014]一種具有如上所述的網絡爬蟲多任務執行和調度的系統,其中,所述系統包括: 數據庫:分別所述節點服務器連接用于保存爬取任務信息;
節點服務器,用于執行網絡爬蟲爬取任務;所述節點服務器包括:
采集模塊,通過所述爬蟲解析模板文件形成用于具體執行爬取任務并進行數據采集; 調度器,用于按照預先定義的調度策略調用關聯的采集模塊執行爬取任務。
[0015]有益效果:本發明提供一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法,通過對爬取內容進行細粒度切分,實現任務的高并發執行,采取負載均衡策略,充分利用了服務器資源,提高了爬取數據的速度,爬取效率得到明顯提高,而且避免了單機故障造成的系統可靠性不高的問題,保障了系統高可靠性運行。
【專利附圖】
【附圖說明】
[0016]圖1為本發明的網絡爬蟲多任務執行和調度方法較佳實施例的方法流程圖。
[0017]圖2為本發明的網絡爬蟲系統較佳實施例的邏輯架構圖。
[0018]圖3為圖2的節點服務器爬蟲結構示意圖。
[0019]圖4為圖2的節點服務器節點調度結構示意圖。
[0020]圖5為圖1中步驟S300的具體實施例的方法流程圖。
【具體實施方式】[0021]本發明提供一種網絡爬蟲系統及網絡爬蟲的多任務執行和調度方法,這里所述的網絡爬蟲也即不間斷地執行某項任務的人工智能軟件程序。為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0022]如圖1所示的一種網絡爬蟲多任務執行和調度方法的較佳實施例,其中,所述方法包括:
S100、根據不同的內容和網站特點,對待爬取內容進行細粒度切分并根據切分后內容分別制作各爬蟲解析模板文件,設置網絡爬蟲分別結合各爬蟲解析模板文件形成用于執行爬取任務的各采集模塊。
[0023]其中,根據不同的內容和網站特點,對待爬取內容進行細粒度切分通俗的講是將要爬取的比較大的內容分離為若干個小的內容,更為具體的:當所述待爬取內容包括類型相同的多個網站時,將類型相同的多個相同的網站切分為單個網站,例如優酷、愛奇藝、土豆網站都有電影,采集這3個網站的電影,將這3個網站的電影與相關信息進行分開采集;或者,當單個網站包含多個內容不同的版塊時,將單個網站切分為不同的版塊;或者,當單一板塊中包含多個頁面時,將單一板塊切分為多個頁面。例如某網站上有資訊,資訊又分為國際、國內、社會、娛樂等類別。可以將資訊這個大版塊分為國際、國內、社會、娛樂等小版塊進行獨立采集。
[0024]由于所述切分后的內容之間無關聯性,且所述各采集模塊分別對應關聯各爬取任務,因而所要執行的各爬取任務之間也必然無關聯性。按照上述的方法將爬取內容切分成細小內容后,由獨立的任務進行爬取且設定每一爬取任務通過一獨立線程完成,由于任務彼此之間無關聯性,在調度器的調度下可以同時執行,即可具有并發執行的特點。
[0025]較佳的是,所述爬蟲解析模板文件是一個xml文件,里面定義要爬取的內容,利用xpath、xquery對內容進行抽取。
【權利要求】
1.一種網絡爬蟲多任務執行和調度方法,其特征在于,所述方法包括: A、根據不同的內容和網站特點,對待爬取內容進行細粒度切分并根據切分后內容分別制作各爬蟲解析模板文件,設置網絡爬蟲分別結合各爬蟲解析模板文件形成用于執行爬取任務的各采集模塊; B、多個節點服務器上分別部署所述網絡爬蟲,每個節點服務器分別設置有用于調度爬取任務的調度器; C、所述調度器按照預先定義的調度策略調用關聯的采集模塊執行爬取任務進行數據米集。
2.根據權利要求1所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述步驟A中根據不同的內容和網站特點,對待爬取內容進行細粒度切分具體為: 當所述待爬取內容包括多個類型相同的網站時,將多個類型相同的網站切分為單個網站; 或者,當單個網站包含多個內容不同的版塊時,將單個網站切分為不同的版塊; 或者,當單一板塊中包含多個頁面時,將單一板塊切分為多個頁面。
3.根據權利要求1所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述切分后的內容之間無關聯性,所述各采集模塊分別對應關聯各爬取任務。
4.根據權利要求3所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述各爬取任務之間無關聯性,每一爬取任務通過一獨立線程完成。
5.根據權利要求1所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述預先定義的調度策略包括: 指定所述爬取任務在一固定的節點服務器上執行; 按照所述節點服務器節點等比原則在多個節點服務器中隨機分配爬取任務; 根據所述多個節點服務器當前的資源信息,優先選擇資源利用率低的節點服務器執行爬取任務。
6.根據權利要求5所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述預先定義的調度策略具體設置為: 預先設置并存儲一信息列表,所述信息列表中存儲有所述節點服務器的IP、端口信息、爬取任務信息;讀取所述信息列表獲取爬取任務與節點服務器的對應關系,按照所述對應關系在相應的節點服務器上的執行爬取任務; 設置所述各節點服務器節點權重均為1,按照該等比原則在多個節點服務器中隨機分配爬取任務; 定期獲取所述多個節點服務器當前的CPU、內存資源信息,根據所獲取的資源信息優先選擇資源利用率低的節點服務器執行爬取任務,若存在資源利用率相同的節點服務器,則在該類節點服務器中隨機分配爬取任務。
7.根據權利要求1所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述方法還包括:設置一用于保存爬取任務信息的數據庫,所述數據庫分別與所述多個節點服務器相連接,所述節點服務器上的各調度器通過各自獨立的線程定期檢查所述數據庫。
8.根據權利要求7所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述步驟C中所述調度器按照預先定義的調度策略調用關聯的采集模塊之前還包括:所述節點服務器第一次運行時,將所獲取的爬取任務信息初始化到所述數據庫。
9.根據權利要求6或7所述的網絡爬蟲多任務執行和調度方法,其特征在于,所述步驟C具體為:到爬取任務觸發時間時,按照預先定義的調度策略,所述服務器節點的調度器觸發自己的觸發器獲取數據庫鎖,獲取所述數據庫鎖的調度器調用關聯的采集模塊,網絡爬蟲加載所述爬蟲解析模板文件采集數據,同時更新爬取任務狀態并持久化到所述數據庫。
10.一種具有權利要求1-9任一項所述的網絡爬蟲多任務執行和調度的系統,其特征在于,所述系統包括: 數據庫:分別所述節點服務器連接用于保存爬取任務信息; 節點服務器,用于執行網絡爬蟲爬取任務;所述節點服務器包括: 采集模塊,通過所述爬蟲解析模板文件形成用于具體執行爬取任務并進行數據采集; 調度器,用于按照預先定義的調度策略調用關聯的采集模塊執行爬取任務。
【文檔編號】G06F9/46GK103605764SQ201310610659
【公開日】2014年2月26日 申請日期:2013年11月26日 優先權日:2013年11月26日
【發明者】宋軻, 劉世才, 毛海濤 申請人:Tcl集團股份有限公司