高可用、高可擴展、分布式的模塊化網絡爬蟲的製作方法
2023-09-10 13:48:05
高可用、高可擴展、分布式的模塊化網絡爬蟲的製作方法
【專利摘要】本發明公開了一種高可用、高可擴展、分布式的模塊化網絡爬蟲,提出了一種新型網絡爬蟲體系結構,該體系結構主要包括:資源模塊、網頁下載模塊、網頁分解模塊以及事件驅動模塊,所述資源模塊包括控制模塊、網頁存儲模塊和通信模塊;該新型網絡爬蟲體系結構以控制模塊為核心,採用事件驅動的編程模型,通過整合網頁下載模塊、網頁分解模塊及協調不同機器之間資源的均衡配置,使分布式爬蟲體系具有可擴展性和高可用性,很適合用於海量數據的抓取工作,適合用於雲計算中心。
【專利說明】高可用、高可擴展、分布式的模塊化網絡爬蟲
[0001]
【技術領域】
[0002]本發明涉及計算機通信領域,具體地說是一種高可用、高可擴展、分布式的模塊化網絡爬蟲。
【背景技術】
[0003]隨著大數據的發展,大數據處理技術已經比較成熟。大數據的關鍵因素在於如何獲得大量的數據。從網絡上抓起海量的數據成為獲取數據的一個較為便捷的方法。爬蟲技術雖然經過多年的發展,但是目前大多數的爬蟲擴展性、性能、功能擴展性等各方面都不能滿足獲取海量數據的要求,並且在分解複雜的網頁結構時靈活性不足。因此,設計一款具有可擴展性、高可用、分布式的網絡爬蟲就很有必要了。
【發明內容】
[0004]針對現有技術存在的不足之處,本發明提出了一種高可用、高可擴展、分布式的模塊化網絡爬蟲。
[0005]本發明所述一種高可用、高可擴展、分布式的模塊化網絡爬蟲,解決上述技術問題採用的技術方案如下:該模塊化網絡爬蟲提出了一種新型網絡爬蟲體系結構,該體系結構主要包括:資源模塊、網頁下載模塊、網頁分解模塊以及事件驅動模塊,其中:
所述資源模塊主要包括控制模塊、網頁存儲模塊和通信模塊;控制模塊是整個系統架構的核心,負責協調各個機器的爬蟲間的通信、全局信息共享和為各個爬蟲分配任務;網頁存儲模塊負責存儲分解後的網頁;
所述網頁下載模塊主要負責網頁的下載、添加代理伺服器、模擬瀏覽器行為;
所述網頁分解模塊負責網頁的分解、去除廣告信息、去除噪聲等;
所述事件驅動模塊負責為多個任務安排執行順序,該模塊包括事件驅動編程模型,事件驅動編程模型在網絡方面比多線程模型要優秀;
該新型網絡爬蟲體系結構,是以控制模塊為核心,採用事件驅動的編程模型,通過整合網頁下載模塊、網頁分解模塊及協調不同機器之間資源的均衡配置,使分布式爬蟲體系發揮最大的效能,並具有可擴展性和高可用性;該新型網絡爬蟲體系結構中,網頁下載模塊、網頁分解模塊、事件驅動模塊和網頁存儲模塊之間的低耦合性,因此可以自定義各個模塊的功能以適應網絡上結構複雜的網頁;並且,單一的控制模塊使得整個系統可以很大規模的擴展,即使若干個爬行節點停止工作,整個系統不會丟失全局信息,其他爬行節點可以繼續工作,從而提高了系統的可擴展性和高可用性。
[0006]本發明所述高可用、高可擴展、分布式的模塊化網絡爬蟲具有的有益效果:
該新型網絡爬蟲體系架構基於模塊化的靈活擴展的特性,各個模塊可以靈活的自定義
爬行行為、下載方式、分解方式和存儲方式,可以進行靈活的跨節點配置,包括從系統中添加節點或刪除節點等操作;同時在修改某一模塊時,基本不用或很少對其他模塊進行複雜的配置工作,從而減少系統管理的複雜程度;
該高可用、高可擴展、分布式的模塊化網絡爬蟲可以大規模並行工作,並且其配置簡單,自定義靈活,從而提高了系統的可擴展性和高可用性,很適合用於海量數據的抓取工作,適合用於雲計算中心。
【專利附圖】
【附圖說明】
[0007]附圖1為基於控制模塊為中心的新型網絡爬蟲體系結構示意圖。
【具體實施方式】
[0008]參照說明書附圖和具體實施例,對本發明的高可用、高可擴展、分布式的模塊化網絡爬蟲作以下詳細地說明。
[0009]本方明所述高可用、高可擴展、分布式的模塊化網絡爬蟲,提出了一種新型網絡爬蟲體系結構,該體系結構主要包括:資源模塊、網頁下載模塊、網頁分解模塊以及事件驅動模塊,其中:
資源模塊主要包括控制模塊、網頁存儲模塊和通信模塊;所述控制模塊是整個系統架構的核心,負責協調各個機器的爬蟲間的通信、全局信息共享和為各個爬蟲分配任務;網頁存儲模塊負責存儲分解後的網頁;
網頁下載模塊主要負責網頁的下載、添加代理伺服器、模擬瀏覽器行為;
網頁分解模塊負責網頁的分解、去除廣告信息、去除噪聲等;
事件驅動模塊負責為多個任務安排執行順序,該模塊包括事件驅動編程模型,事件驅動編程模型在網絡方面比多線程模型要優秀;
所述新型網絡爬蟲體系結構,是以控制模塊為核心,採用事件驅動的編程模型,通過整合網頁下載模塊、網頁分解模塊及協調不同機器之間資源的均衡配置,使分布式爬蟲體系發揮最大的效能,並具有可擴展性和高可用性;該新型網絡爬蟲體系結構中,網頁下載模塊、網頁分解模塊、事件驅動模塊和網頁存儲模塊之間的低耦合性,因此可以自定義各個模塊的功能以適應網絡上結構複雜的網頁;並且,單一的控制模塊使得整個系統可以很大規模的擴展,即使若干個爬行節點停止工作,整個系統不會丟失全局信息,其他爬行節點可以繼續工作,從而提高了系統的可擴展性和高可用性。
[0010]附圖1為基於控制模塊為中心的新型網絡爬蟲體系結構示意圖,如附圖1所示,本發明提出的新型網絡爬蟲體系結構主要包括:資源模塊、網頁下載模塊、網頁分解模塊以及事件驅動模塊;在這一體系結構中,所述資源模塊主要包括控制模塊、網頁存儲模塊和通信模塊。控制模塊存儲各個爬行節點的狀態信息、全局爬行信息和各個爬行節點的任務,這些信息的數據結構比較簡單,但是速度要求較高,可以採用目前比較流行的Key-Value數據,比如RediiHbase等;通訊模塊對性能要求不高,可以採用通用的網絡交換設備,如乙太網交換機、路由器、集線器等網絡設備;網頁存儲模塊也可以採用通用的資料庫或者NoSQL,如 MySQL、MongoDB 等。
[0011]該新型網絡爬蟲體系結構基於模塊化的靈活擴展的特性,各個模塊可以靈活的自定義爬行行為、下載方式、分解方式和存儲方式,可以進行靈活的跨節點配置,包括從系統中添加節點或刪除節點等操作;這種靈活性還體現在修改某一模塊時,基本不用或很少對其他模塊進行複雜的配置工作,從而減少系統管理的複雜程度。該高可用、高可擴展、分布式的模塊化網絡爬蟲可以大規模並行工作,並且其配置簡單,自定義靈活,因此,很適合用於海量數據的抓取工作,適合用於雲計算中心。
[0012]上述【具體實施方式】僅是本發明的具體個案,本發明的專利保護範圍包括但不限於上述【具體實施方式】,任何符合本發明的權利要求書的且任何所屬【技術領域】的普通技術人員對其所做的適當變化或替換,皆應落入本發明的專利保護範圍。
【權利要求】
1.高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,該模塊化網絡爬蟲提出了一種新型網絡爬蟲體系結構,該體系結構主要包括:資源模塊、網頁下載模塊、網頁分解模塊以及事件驅動模塊,其中: 所述資源模塊主要包括控制模塊、網頁存儲模塊和通信模塊;控制模塊是整個系統架構的核心,負責協調各個機器的爬蟲間的通信、全局信息共享和為各個爬蟲分配任務;網頁存儲模塊負責存儲分解後的網頁; 所述網頁下載模塊主要負責網頁的下載、添加代理伺服器、模擬瀏覽器行為; 所述網頁分解模塊負責網頁的分解、去除廣告信息、去除噪聲; 所述事件驅動模塊負責為多個任務安排執行順序,該模塊包括事件驅動編程模型; 該新型網絡爬蟲體系結構是以控制模塊為核心,採用事件驅動編程模型,通過整合網頁下載模塊、網頁分解模塊及協調不同機器之間資源的均衡配置,使分布式爬蟲體系具有可擴展性和高可用性。
2.根據權利要求1所述的高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,該新型網絡爬蟲體系結構中,所述網頁下載模塊、網頁分解模塊、事件驅動模塊和網頁存儲模塊之間的耦合性低,能夠自定義各個模塊的功能以適應網絡上結構複雜的網頁。
3.根據權利要求2所述的高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,該新型網絡爬蟲體系結構基於模塊化的靈活擴展的特性,各個模塊能夠靈活的自定義爬行行為、下載方式、分解方式和存儲方式,能夠進行靈活的跨節點配置;並且在修改某一模塊時,基本不用或很少對其他模塊進行複雜的配置工作。
4.根據權利要求1所述的高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,所述控制模塊存儲各個爬行節點的狀態信息、全局爬行信息和各個爬行節點的任務,這些信息的數據結構採用Key-value數據。
5.根據權利要求1所述的高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,所述通訊模塊對性能要求不高,採用通用的網絡交換設備乙太網交換機、路由器、集線器網絡設備。
6.根據權利要求1所述的高可用、高可擴展、分布式的模塊化網絡爬蟲,其特徵在於,所述網絡存儲模塊採用通用的資料庫或者NoSQL。
【文檔編號】H04L29/08GK103997524SQ201410215470
【公開日】2014年8月20日 申請日期:2014年5月21日 優先權日:2014年5月21日
【發明者】陳大雅, 程瑤, 文中領 申請人:浪潮電子信息產業股份有限公司