




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
互聯網數據采集系統的設計與實現摘要:針對目前互聯網上的數據信息涉及網站多、數據量大、數據復雜、數據標準不統一等問題。通過采用分布式數據庫和支撐服務組件等技術,設計建設一套互聯網信息采集管理系統,實現對互聯網上相關的數據快速采集和生產標準格式數據的目標。1、概述全球互聯網步入泛在普及、深度融合、變革創新、引領轉型的新階段,根據國際數據公司的統計和預測,全球數據存儲量將由2015年的10ZB增長到2020年的44ZB,進入萬物互聯時代數據存儲量呈現指數級增長,各類新聞媒體、信息檢索、社區論壇、商務金融、學習教育等多樣化數據資源已經遍布于互聯網的各個角落,互聯網已經成為了一個龐大的數據資源池。因此,無論是政務機構、企事業單位甚至是個人,已經逐漸的將互聯網數據資源作為輔助完成項目建設、業務工作、科學研究的重要數據來源之一。所以,有必要建立一套互聯網數據采集系統,解決互聯網數據采集問題,豐富中心大數據來源,為政府決策、行業管理以及公眾提供更好的信息服務。2、系統總體設計本系統具體包括互聯網信息感知系統,分布式數據庫和支撐服務組件?;ヂ摼W信息感知系統互聯網信息感知系統包含三個子系統,分別是后臺管理子系統、爬蟲容器子系統、存儲容器子系統。其中后臺管理子系統主要實現數據統計分析、爬蟲任務管理、爬蟲模板管理、爬蟲程序管理、爬蟲配置管理、用戶管理、角色管理、菜單管理、字典管理等功能。爬蟲容器子系統主要實現爬蟲的任務管理,包括創建爬蟲任務、啟動任務、部署任務、停止任務等功能。存儲容器子系統主要實現了數據分析處理、數據排重處理、數據格式化處理等功能。
互聯網信息感知系統數據庫互聯網信息感知系統數據庫包含兩個主要數據庫,分別是管理平臺數據庫、采集數據平臺存儲數據庫。其中管理平臺數據庫存儲了整個系統正常運行的系統數據的管理平臺數據庫,包括爬蟲任務、爬蟲程序、爬蟲配置、用戶、角色、字典等系統基礎數據。采集數據平臺存儲了通過互聯網相關網站采集獲取的數據。支撐服務建設支撐服務包含消息隊列、Zookeeper注冊中心、FTP服務器。其中消息隊列用于解耦爬蟲任務和數據庫的存取關系,并可降低對數據庫的存儲壓力。注冊中心用于獲取爬蟲容器和爬蟲任務的運行狀態,便于服務治理。FTP服務存儲爬蟲任務爬取的圖片數據。系統采用分層架構設計,包括6層,即基礎層、數據層、業務層、支撐層、應用管理層和展現層。圖1總體架構設計基礎層基礎層由網絡設備,存儲設備和安全設備等系統所需的基礎環境組成。數據層數據層由Mysql數據庫組成,主要分為信息采集平臺數據庫和爬蟲數據庫,分別存儲基礎數據和爬取的業務數據。業務層業務層主要包含接口服務和存儲服務,后端管理系統通過接口方式調用和同步對存儲服務和爬蟲的進行相應的操作。支撐層本系統的支撐層主要包含Zookeeper注冊中心、RocketMQ消息隊列和FTP文件存儲服務器。Zookeeper協調管理爬蟲容器和數據處理容器,Zookeeper檢測爬蟲任務和爬蟲服務的存活狀態,并實時通知信息采集管理平臺,提供選擇爬蟲服務的依據。RocketMQ對爬蟲服務和數據庫進行解耦,緩存爬蟲服務抓取的數據,降低存儲數據的并發度,提高數據的橫向擴充能力,解除數據寫入帶來的數據抓取限制。FTP文件存儲服務器存貯爬蟲程序抓取的靜態文件包括不限于抓取的Css、Html、Js、Image、Video等文件。應用層系統的應用層,采用Java語言開發,使用基于Spring集成的SSM框架,實現的主要業務有和數據庫的數據交互,任務調度,任務分配和爬蟲服務的接口通信、和支撐服務的業務通信。由任務管理、模板管理、系統管理、爬蟲管理等組成。展現層展現層面向操作用戶,使用Element-ui2.5框架,Vue2.6。和業務層通過接口實現數據交換,主要實現了任務管理、模板管理、容器管理、數據看板、查詢統計、系統設置等功能。3、系統具體實現3.1采用selenium爬取動態網頁動態頁面的生成有很多種,常見的有兩種:一種是直接通過Ajax返回的數據來顯示.對于這種,我們可以直接通過分析Ajax的接口來使用requests或者urllib等包直接來獲取接口傳輸的數據,另外一種是返回的數據在頁面上再進行加工后才顯示的數據,這種數據往往是通過js進行各種復雜的計算得到的也是一種很常見的加密方式,通過requests并不能直接獲取。針對第一種我們直接可以使用調用接口的方式獲取,但是通過前端js加密的數據如何獲取,當然我們可以直接分析他們的js來讀懂整個網站的js但是這需要很大的功夫去了解一個網站,對于一個大型網站可能網站的人員都不一定能全部理解整個網站的js加密方式。針對該種方式的動態網頁,我們使用一款自動化測試工具selenium來解決。使用selenium能夠對動態網頁進行渲染,并模擬人為的點擊下拉等操作,對于加密的Js或者復雜請求的渲染界面的應對措施。3.2多級數據動態下鉆對于爬蟲爬取的網絡數據有時候往往不是一類數據,很有可能是父子表數據,或者更多界別的數據,例如:爬取的房屋數據中就包含了樓盤-樓棟-房間信息,對于此類數據,如何很好的存儲比較關鍵。系統使用通過編寫相關程序和實現,使用簡單的配置,通過配置配置文件中字段的父子關系,直接生成父子表,并通過頁面直接點擊該列字段,展現子表數據。3.3分布式網絡爬蟲技術分布式網絡爬蟲就是基于聚焦爬蟲的分布式實現方式,主要使用以下組件實現分布式實現:Redis:分布式的Key-Value數據庫,用作存儲已經爬取的URL倉庫。Zookeeper:分布式協調組件,用于對分布式爬蟲容器的管理,由于Zookeeper支持多臺部署,下圖中2臺Zookeeper可自主選舉,數據和狀態實時同步。RocketMQ:消息中間件,用于存儲待爬取的URL和爬取下來的數據,并提供給存儲容器消費數據。其他系統包括Web管理平臺,存儲服務系統,具體實現方式見下圖(圖2):圖2分布式應用部署圖圖2是部署在后端的分布式應用,整個平臺依托于分布式部署,依托于代理IP池,能快速的將爬取網站爬取下來,基于RocketMQ消費隊列模式能依據存儲容器和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司員工收快遞管理制度
- 2025年山東省濟南市長清區中考三模語文試題(含答案)
- 2025年高考云南卷歷史高考真題(無答案)
- 病理選擇考試題及答案
- 標書專員考試題及答案
- 編程校隊考試題及答案
- 寶馬歷史考試題及答案
- 安順中考試題及答案
- 安工考試題及答案
- plc編程考試題及答案
- 小學語文《爬山虎的腳》教案 篇
- 紅樓夢45回,46回課件
- 張元鵬《微觀經濟學》(中級教程)筆記和課后習題詳解
- 映秀灣水電廠一次系統課程設計
- 武學大師孫存周(手稿)
- 碳排放管理師考試復習題庫
- 普通話測試中常見的語音錯誤與缺陷
- 中信集團員工手冊全冊
- 叉車自檢報告(柴油叉車)
- 【教案】高三化學二輪復習++限定條件下同分異構體的書寫++教學設計
- 地磅無人值守智能稱重系統方案
評論
0/150
提交評論