一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法
2023-04-23 01:30:46 1
一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法
【專利摘要】本發明公開一種網絡爬蟲系統及網絡爬蟲多任務執行和調度方法,所述方法包括: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集團股份有限公司