互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)摘要:針對(duì)目前互聯(lián)網(wǎng)上的數(shù)據(jù)信息涉及網(wǎng)站多、數(shù)據(jù)量大、數(shù)據(jù)復(fù)雜、數(shù)據(jù)標(biāo)準(zhǔn)不統(tǒng)一等問(wèn)題。通過(guò)采用分布式數(shù)據(jù)庫(kù)和支撐服務(wù)組件等技術(shù),設(shè)計(jì)建設(shè)一套互聯(lián)網(wǎng)信息采集管理系統(tǒng),實(shí)現(xiàn)對(duì)互聯(lián)網(wǎng)上相關(guān)的數(shù)據(jù)快速采集和生產(chǎn)標(biāo)準(zhǔn)格式數(shù)據(jù)的目標(biāo)。1、概述全球互聯(lián)網(wǎng)步入泛在普及、深度融合、變革創(chuàng)新、引領(lǐng)轉(zhuǎn)型的新階段,根據(jù)國(guó)際數(shù)據(jù)公司的統(tǒng)計(jì)和預(yù)測(cè),全球數(shù)據(jù)存儲(chǔ)量將由2015年的10ZB增長(zhǎng)到2020年的44ZB,進(jìn)入萬(wàn)物互聯(lián)時(shí)代數(shù)據(jù)存儲(chǔ)量呈現(xiàn)指數(shù)級(jí)增長(zhǎng),各類新聞媒體、信息檢索、社區(qū)論壇、商務(wù)金融、學(xué)習(xí)教育等多樣化數(shù)據(jù)資源已經(jīng)遍布于互聯(lián)網(wǎng)的各個(gè)角落,互聯(lián)網(wǎng)已經(jīng)成為了一個(gè)龐大的數(shù)據(jù)資源池。因此,無(wú)論是政務(wù)機(jī)構(gòu)、企事業(yè)單位甚至是個(gè)人,已經(jīng)逐漸的將互聯(lián)網(wǎng)數(shù)據(jù)資源作為輔助完成項(xiàng)目建設(shè)、業(yè)務(wù)工作、科學(xué)研究的重要數(shù)據(jù)來(lái)源之一。所以,有必要建立一套互聯(lián)網(wǎng)數(shù)據(jù)采集系統(tǒng),解決互聯(lián)網(wǎng)數(shù)據(jù)采集問(wèn)題,豐富中心大數(shù)據(jù)來(lái)源,為政府決策、行業(yè)管理以及公眾提供更好的信息服務(wù)。2、系統(tǒng)總體設(shè)計(jì)本系統(tǒng)具體包括互聯(lián)網(wǎng)信息感知系統(tǒng),分布式數(shù)據(jù)庫(kù)和支撐服務(wù)組件?;ヂ?lián)網(wǎng)信息感知系統(tǒng)互聯(lián)網(wǎng)信息感知系統(tǒng)包含三個(gè)子系統(tǒng),分別是后臺(tái)管理子系統(tǒng)、爬蟲(chóng)容器子系統(tǒng)、存儲(chǔ)容器子系統(tǒng)。其中后臺(tái)管理子系統(tǒng)主要實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)分析、爬蟲(chóng)任務(wù)管理、爬蟲(chóng)模板管理、爬蟲(chóng)程序管理、爬蟲(chóng)配置管理、用戶管理、角色管理、菜單管理、字典管理等功能。爬蟲(chóng)容器子系統(tǒng)主要實(shí)現(xiàn)爬蟲(chóng)的任務(wù)管理,包括創(chuàng)建爬蟲(chóng)任務(wù)、啟動(dòng)任務(wù)、部署任務(wù)、停止任務(wù)等功能。存儲(chǔ)容器子系統(tǒng)主要實(shí)現(xiàn)了數(shù)據(jù)分析處理、數(shù)據(jù)排重處理、數(shù)據(jù)格式化處理等功能。

互聯(lián)網(wǎng)信息感知系統(tǒng)數(shù)據(jù)庫(kù)互聯(lián)網(wǎng)信息感知系統(tǒng)數(shù)據(jù)庫(kù)包含兩個(gè)主要數(shù)據(jù)庫(kù),分別是管理平臺(tái)數(shù)據(jù)庫(kù)、采集數(shù)據(jù)平臺(tái)存儲(chǔ)數(shù)據(jù)庫(kù)。其中管理平臺(tái)數(shù)據(jù)庫(kù)存儲(chǔ)了整個(gè)系統(tǒng)正常運(yùn)行的系統(tǒng)數(shù)據(jù)的管理平臺(tái)數(shù)據(jù)庫(kù),包括爬蟲(chóng)任務(wù)、爬蟲(chóng)程序、爬蟲(chóng)配置、用戶、角色、字典等系統(tǒng)基礎(chǔ)數(shù)據(jù)。采集數(shù)據(jù)平臺(tái)存儲(chǔ)了通過(guò)互聯(lián)網(wǎng)相關(guān)網(wǎng)站采集獲取的數(shù)據(jù)。支撐服務(wù)建設(shè)支撐服務(wù)包含消息隊(duì)列、Zookeeper注冊(cè)中心、FTP服務(wù)器。其中消息隊(duì)列用于解耦爬蟲(chóng)任務(wù)和數(shù)據(jù)庫(kù)的存取關(guān)系,并可降低對(duì)數(shù)據(jù)庫(kù)的存儲(chǔ)壓力。注冊(cè)中心用于獲取爬蟲(chóng)容器和爬蟲(chóng)任務(wù)的運(yùn)行狀態(tài),便于服務(wù)治理。FTP服務(wù)存儲(chǔ)爬蟲(chóng)任務(wù)爬取的圖片數(shù)據(jù)。系統(tǒng)采用分層架構(gòu)設(shè)計(jì),包括6層,即基礎(chǔ)層、數(shù)據(jù)層、業(yè)務(wù)層、支撐層、應(yīng)用管理層和展現(xiàn)層。圖1總體架構(gòu)設(shè)計(jì)基礎(chǔ)層基礎(chǔ)層由網(wǎng)絡(luò)設(shè)備,存儲(chǔ)設(shè)備和安全設(shè)備等系統(tǒng)所需的基礎(chǔ)環(huán)境組成。數(shù)據(jù)層數(shù)據(jù)層由Mysql數(shù)據(jù)庫(kù)組成,主要分為信息采集平臺(tái)數(shù)據(jù)庫(kù)和爬蟲(chóng)數(shù)據(jù)庫(kù),分別存儲(chǔ)基礎(chǔ)數(shù)據(jù)和爬取的業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)層業(yè)務(wù)層主要包含接口服務(wù)和存儲(chǔ)服務(wù),后端管理系統(tǒng)通過(guò)接口方式調(diào)用和同步對(duì)存儲(chǔ)服務(wù)和爬蟲(chóng)的進(jìn)行相應(yīng)的操作。支撐層本系統(tǒng)的支撐層主要包含Zookeeper注冊(cè)中心、RocketMQ消息隊(duì)列和FTP文件存儲(chǔ)服務(wù)器。Zookeeper協(xié)調(diào)管理爬蟲(chóng)容器和數(shù)據(jù)處理容器,Zookeeper檢測(cè)爬蟲(chóng)任務(wù)和爬蟲(chóng)服務(wù)的存活狀態(tài),并實(shí)時(shí)通知信息采集管理平臺(tái),提供選擇爬蟲(chóng)服務(wù)的依據(jù)。RocketMQ對(duì)爬蟲(chóng)服務(wù)和數(shù)據(jù)庫(kù)進(jìn)行解耦,緩存爬蟲(chóng)服務(wù)抓取的數(shù)據(jù),降低存儲(chǔ)數(shù)據(jù)的并發(fā)度,提高數(shù)據(jù)的橫向擴(kuò)充能力,解除數(shù)據(jù)寫入帶來(lái)的數(shù)據(jù)抓取限制。FTP文件存儲(chǔ)服務(wù)器存貯爬蟲(chóng)程序抓取的靜態(tài)文件包括不限于抓取的Css、Html、Js、Image、Video等文件。應(yīng)用層系統(tǒng)的應(yīng)用層,采用Java語(yǔ)言開(kāi)發(fā),使用基于Spring集成的SSM框架,實(shí)現(xiàn)的主要業(yè)務(wù)有和數(shù)據(jù)庫(kù)的數(shù)據(jù)交互,任務(wù)調(diào)度,任務(wù)分配和爬蟲(chóng)服務(wù)的接口通信、和支撐服務(wù)的業(yè)務(wù)通信。由任務(wù)管理、模板管理、系統(tǒng)管理、爬蟲(chóng)管理等組成。展現(xiàn)層展現(xiàn)層面向操作用戶,使用Element-ui2.5框架,Vue2.6。和業(yè)務(wù)層通過(guò)接口實(shí)現(xiàn)數(shù)據(jù)交換,主要實(shí)現(xiàn)了任務(wù)管理、模板管理、容器管理、數(shù)據(jù)看板、查詢統(tǒng)計(jì)、系統(tǒng)設(shè)置等功能。3、系統(tǒng)具體實(shí)現(xiàn)3.1采用selenium爬取動(dòng)態(tài)網(wǎng)頁(yè)動(dòng)態(tài)頁(yè)面的生成有很多種,常見(jiàn)的有兩種:一種是直接通過(guò)Ajax返回的數(shù)據(jù)來(lái)顯示.對(duì)于這種,我們可以直接通過(guò)分析Ajax的接口來(lái)使用requests或者urllib等包直接來(lái)獲取接口傳輸?shù)臄?shù)據(jù),另外一種是返回的數(shù)據(jù)在頁(yè)面上再進(jìn)行加工后才顯示的數(shù)據(jù),這種數(shù)據(jù)往往是通過(guò)js進(jìn)行各種復(fù)雜的計(jì)算得到的也是一種很常見(jiàn)的加密方式,通過(guò)requests并不能直接獲取。針對(duì)第一種我們直接可以使用調(diào)用接口的方式獲取,但是通過(guò)前端js加密的數(shù)據(jù)如何獲取,當(dāng)然我們可以直接分析他們的js來(lái)讀懂整個(gè)網(wǎng)站的js但是這需要很大的功夫去了解一個(gè)網(wǎng)站,對(duì)于一個(gè)大型網(wǎng)站可能網(wǎng)站的人員都不一定能全部理解整個(gè)網(wǎng)站的js加密方式。針對(duì)該種方式的動(dòng)態(tài)網(wǎng)頁(yè),我們使用一款自動(dòng)化測(cè)試工具selenium來(lái)解決。使用selenium能夠?qū)?dòng)態(tài)網(wǎng)頁(yè)進(jìn)行渲染,并模擬人為的點(diǎn)擊下拉等操作,對(duì)于加密的Js或者復(fù)雜請(qǐng)求的渲染界面的應(yīng)對(duì)措施。3.2多級(jí)數(shù)據(jù)動(dòng)態(tài)下鉆對(duì)于爬蟲(chóng)爬取的網(wǎng)絡(luò)數(shù)據(jù)有時(shí)候往往不是一類數(shù)據(jù),很有可能是父子表數(shù)據(jù),或者更多界別的數(shù)據(jù),例如:爬取的房屋數(shù)據(jù)中就包含了樓盤-樓棟-房間信息,對(duì)于此類數(shù)據(jù),如何很好的存儲(chǔ)比較關(guān)鍵。系統(tǒng)使用通過(guò)編寫相關(guān)程序和實(shí)現(xiàn),使用簡(jiǎn)單的配置,通過(guò)配置配置文件中字段的父子關(guān)系,直接生成父子表,并通過(guò)頁(yè)面直接點(diǎn)擊該列字段,展現(xiàn)子表數(shù)據(jù)。3.3分布式網(wǎng)絡(luò)爬蟲(chóng)技術(shù)分布式網(wǎng)絡(luò)爬蟲(chóng)就是基于聚焦爬蟲(chóng)的分布式實(shí)現(xiàn)方式,主要使用以下組件實(shí)現(xiàn)分布式實(shí)現(xiàn):Redis:分布式的Key-Value數(shù)據(jù)庫(kù),用作存儲(chǔ)已經(jīng)爬取的URL倉(cāng)庫(kù)。Zookeeper:分布式協(xié)調(diào)組件,用于對(duì)分布式爬蟲(chóng)容器的管理,由于Zookeeper支持多臺(tái)部署,下圖中2臺(tái)Zookeeper可自主選舉,數(shù)據(jù)和狀態(tài)實(shí)時(shí)同步。RocketMQ:消息中間件,用于存儲(chǔ)待爬取的URL和爬取下來(lái)的數(shù)據(jù),并提供給存儲(chǔ)容器消費(fèi)數(shù)據(jù)。其他系統(tǒng)包括Web管理平臺(tái),存儲(chǔ)服務(wù)系統(tǒng),具體實(shí)現(xiàn)方式見(jiàn)下圖(圖2):圖2分布式應(yīng)用部署圖圖2是部署在后端的分布式應(yīng)用,整個(gè)平臺(tái)依托于分布式部署,依托于代理IP池,能快速的將爬取網(wǎng)站爬取下來(lái),基于RocketMQ消費(fèi)隊(duì)列模式能依據(jù)存儲(chǔ)容器和

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論