999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于網絡爬蟲的數據可視化系統設計與實現

2021-09-23 06:08:04喬士秀圣文順
電子技術與軟件工程 2021年12期
關鍵詞:可視化數據庫用戶

喬士秀 圣文順

(1.德州市市場監督管理局 山東省德州市 253500 2.南京工業大學浦江學院 江蘇省南京市 211200)

進入21世紀,數據成為人類最寶貴的財富。如今,中國網民數量已經達到9億之多。隨意挑選一款互聯網產品,可能就有幾億的用戶。如何將數據有效地檢索并組織呈現出來,有著巨大的應用前景。

面對龐大的數據量,如何有效的檢索,并且直觀的展示,就顯得尤為重要。當今人們檢索數據有兩種方式。使用搜索引擎是最普遍的一種。搜索引擎的出現大大降低了人們獲取數據的難度,人們可以輕松地通過檢索關鍵字獲得所需的數據。但是這種通用型爬蟲缺點也是非常明顯的,即無法獲得特定的數據。最具有代表意義的就是每個網站的robots.txt文件,此文件可以要求通用型搜索引擎哪些資源不能被爬取。部分網站甚至所有內容都禁止爬取。用戶就無法通過搜索引擎獲取到這些信息。而另一種檢索工具是主題網絡爬蟲[1],優勢就顯得非常明顯。開發者首先分析目標網站的網頁結構以及API信息,根據這些信息爬取所有需要的數據。之后使用數據處理的相關技術,提取出有價值的數據,最終通過可視化技術把數據直觀的展現出來。由此帶來了極大的便利。不同領域、不同背景的用戶往往具有不同的檢索目的和需求,通過主題爬蟲,就能完美定制這些個性化服務。

1 系統需求分析

網絡數據爬取及展現系統是對bilibili網站各項數據可視化的平臺。爬蟲設置定時任務,每天根據配置自動抓取目標信息,并對數據進行處理,然后持久化到MySQL數據庫。對于熱門信息,存儲到Redis數據庫,以應對頻繁訪問與數據處理,如圖1所示。

用戶通過在可視化網站點擊事件發送請求,通過接口在數據庫中查詢到相關數據,再返回到網站,綁定到相關元素節點上。對于部分數據設置自動刷新,時間間隔內自動向后臺發送請求,刷新數據到網頁上,如圖2所示。

2 系統設計

系統主要模塊包括:可視化網站、后臺管理網站、爬蟲系統,如圖3所示。

2.1 可視化網站

主要包括了bilibili網站基本數據展示、bilibili網站視頻信息展示、bilibili網站用戶信息展示模塊。

(1)bilibili網站基本數據展示模塊包括:網站實時在線人數、網站實時播放人數、網站每日在線人數、全站關鍵詞詞云。

(2)bilibili網站視頻信息展示模塊包括:當日熱門視頻排行榜、視頻的具體信息,包括硬幣數、播放數、收藏數、喜愛數、綜合評分、投稿人信息、單日以上數據分析展示等。

(3)bilibili網站用戶信息展示模塊包括:當日最熱用戶排行榜、用戶個人信息、用戶簡介、用戶數據、用戶視頻排行榜。

2.2 后臺管理網站

主要包括了用戶管理模塊、爬蟲管理模塊。

(1)用戶管理模塊包括:用戶的增加、刪除、修改、更新。

(2)爬蟲管理模塊包括:爬蟲具體狀態展示、控制爬蟲的運行狀態、爬蟲效率分析。

圖1:爬蟲系統的數據流圖

圖2:可視化平臺的數據流圖

2.3 爬蟲系統

主要包括了URL調度器、下載器、解析器、存儲器、定時任務、消息隊列,如圖4所示。

(1)URL調度器包括:URL倉庫、爬蟲狀態管理。

①URL倉庫。所謂URL倉庫就是Redis倉庫[2],即在我們的系統中使用Redis來保存URL地址列表。只要保證了URL的唯一性,這樣不管我們的爬蟲程序有多少個,最終爬取下來的數據只有一份,不會重復。可以在此基礎上實現爬蟲的分布式。

②爬蟲狀態管理。通過在Redis中設置一組變量,爬蟲每次爬取的時候需要判斷自身是不是處于開啟狀態。也可以通過后臺管理系統手動控制爬蟲狀態。

(2)下載器包括:下載HTML頁面、下載JSON數據、IP代理池、反反爬措施

①IP代理池。加入隨機IP代理主要是為了反反爬蟲。如果有一個IP代理池,并且可以在構建HTTP客戶端時可以隨機使用不同的代理,那么對我們進行反反爬蟲則會由很大的幫助。

這里通過快代理獲取免費的IP,并把這些IP保存到Redis的Set數據結構[3]中。每次構建HTTP客戶端時,會隨機從Set集合中隨機取出一個元素。如果爬取時產生請求失敗,就將這一情況記錄下來,當超過一定次數時,再將其從代理池中刪除。

圖3:網絡數據爬取及展現系統的功能模塊圖

圖4:爬蟲架構圖

②反反爬措施。對于每日任務,設置爬取間隔,降低被目標網站封禁的風險。

對于24小時不間斷爬蟲,需要設置IP代理池。

同時創建HTTP客戶端的時候需要設置相關的頭字段,對于一些特別的請求,需要根據時間動態改變頭字段的值,以應對服務端的檢查。

(3)解析器。解析器[4]的作用就是把下載的網頁中對我們有用的數據解析出來,并保存到某個對象中,供存儲器進一步持久化到數據庫。解析器功能并不復雜,但是代碼量比較多,比如對于不同的HTML文本或者JSON數據都需要不同的代碼進行解析。

當然部分下載下來的文本里還有需要再次爬取的鏈接,我們就需要把這些鏈接保存到下載器隊列里,以便再次爬取。這一過程稱為抽鏈。

(4)存儲器。把解析好的對象保存到數據庫中,具體是什么數據庫也可以手動設置,本系統的數據庫為MySQL。

(5)定時任務。使用Spring Task作為定時任務。部分數據需要每天爬取并記錄,用于數據分析。

(6)消息隊列。由于將爬蟲分成了url調度器、下載器、解析器、存儲器,所以為了降低這幾個組件之間的耦合性,需要這些兩兩之間設置阻塞隊列,實現每個組件的獨立運行。

(7)多線程。對于24小時不間斷爬蟲,每一個組件都實現了多線程。由于對象需要通過Spring Boot創建,因此需要注意多線程對象必須通過Spring容器對象獲取。而不能通過注解獲得。

通過分析一個爬蟲的爬取過程,了解到爬蟲的效率主要取決于下載器的下載的速度,所以本系統給下載器設置了5個線程,其它每一個組件都是單獨的線程。雖然存儲器與數據庫交互需要時間,但是插入數據時使用了批量插入操作,并且線程獨立運行。在這種情況下,實現了爬蟲效率的最大化。

3 系統實現

3.1 前端項目部署

前端使用Vue.js框架[5]構建,由于后端分成多個模塊,每個模塊都有不同的接口,所以前端請求全部發送到同一個端口9001,然后通過Nginx請求[6]轉發到對象模塊。配置好生產環境相關信息,就可以使用相關命令打包項目。只需要把打包好的文件放到服務器上即可運行。

3.2 后臺項目部署

后端項目全部使用Spring Boot構建,只需要使用Maven的package命令就可以生成每個模塊對應的JAR包,把JAR包放到服務器上,執行命令,即可運行后端項目。

3.3 爬蟲系統的實現

爬蟲使用Http Client技術[7]對網絡發起請求,由于Http Client類似JDBC,寫法比較繁瑣,所以這里對Http Client進行了二次封裝,減少代碼冗余,并且配置Http Client對象為單例模式,提高效率。核心代碼如下:

圖5:可視化系統首頁

圖6:視頻詳細歷史數據折線圖可視化頁面

圖7:爬蟲任務管理頁面

3.3 可視化平臺首頁

網絡數據爬取及展現系統可視化模塊首頁,主要是展示bilibili網站網站當前的一些基本信息。首先是所有用戶中,粉絲數排名最靠前的兩位制作者的數據對比,以及當前在線人數,如圖5所示。

3.4 可視化平臺視頻統計模塊

點擊導航欄上的視頻按鈕,可以進入視頻排行榜頁面,這個頁面會顯示當日排名前20的視頻信息,包括視頻封面、標題、所屬分區等,點擊卡片的每一個分類,可以進入視頻詳情界面,點擊視頻排行榜中的某個視頻,可以進入視頻詳情界面,此頁面展示了視頻的基本信息和視頻詳細歷史數據的折線圖,如圖6所示。

3.5 網絡數據爬蟲管理模塊

爬蟲管理模塊主要是對后臺的爬蟲狀態進行管理,也可以控制爬蟲的狀態。爬蟲管理界面展示了當前系統爬蟲總個數、爬蟲執行任務的次數、正在運行的爬蟲個數,也可以通過按鈕實現爬蟲的開關,點擊爬蟲列表頁面,可以看到爬蟲每一次執行任務的記錄,包含爬蟲的名稱,爬蟲當前狀態,爬蟲描述,爬取消耗的時間等信息。點擊導航欄上的任務圖表,進入爬蟲任務信息圖中,通過折線圖展示爬蟲每小時完成的任務、耗費的時間以及正在執行的任務,如圖7所示。

4 結束語

網絡數據爬取及展現系統是基于Java語言開發,在IntelliJ IDEA 2019.2版本基礎上實現的,依托Tomcat作為WEB服務器,以MySQL作為后臺數據庫進行數據存儲。爬蟲在爬取到數據以后直接存儲到MySQL數據庫中,之后再使用定時任務每天對數據進行相關處理,處理完畢以后把數據再次保存新的存儲庫表中。對于熱點數據或者經常需要爬取的數據URL,直接存儲到Redis數據庫中,以提高數據處理的效率。系統運行穩定,界面美觀大方,具有較好的實用性。

猜你喜歡
可視化數據庫用戶
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
主站蜘蛛池模板: 手机精品视频在线观看免费| 免费A∨中文乱码专区| 真实国产精品vr专区| 久久这里只有精品66| 高清视频一区| 国产av一码二码三码无码 | 国产全黄a一级毛片| 91精品伊人久久大香线蕉| 国产成人8x视频一区二区| 亚洲黄色视频在线观看一区| 色综合色国产热无码一| 国产成人精品亚洲77美色| 超薄丝袜足j国产在线视频| 女同久久精品国产99国| 色婷婷亚洲综合五月| 亚洲va欧美va国产综合下载| 国产一级在线观看www色| 欧美五月婷婷| 青青青草国产| 国产噜噜噜视频在线观看| 影音先锋亚洲无码| 国产噜噜噜视频在线观看| 亚洲免费福利视频| 欧美在线一二区| 日韩欧美中文字幕在线精品| 一本大道无码高清| 国产精品原创不卡在线| 激情六月丁香婷婷四房播| 欧美国产日产一区二区| 性喷潮久久久久久久久| 久久五月视频| 免费看av在线网站网址| 一区二区在线视频免费观看| 久久这里只有精品66| 亚洲欧美成人综合| 婷婷综合亚洲| 国产国产人成免费视频77777| 蜜芽一区二区国产精品| 亚洲成AV人手机在线观看网站| 香蕉综合在线视频91| 欧美国产视频| 99热亚洲精品6码| 99尹人香蕉国产免费天天拍| 亚洲天堂在线免费| 午夜影院a级片| 999国内精品久久免费视频| 91色在线观看| 日韩精品成人在线| 色综合中文综合网| 成人蜜桃网| 国产激情无码一区二区免费| 欧美特黄一免在线观看| 欧美啪啪一区| 国产精品亚洲一区二区三区z| 国产打屁股免费区网站| 国产精品亚洲日韩AⅤ在线观看| 99er这里只有精品| 中文字幕首页系列人妻| 免费国产黄线在线观看| 国产成人综合久久| 欧美三級片黃色三級片黃色1| 欧美亚洲日韩不卡在线在线观看| 久久国产精品国产自线拍| 亚洲一级毛片在线观| 国产精品自拍合集| 亚洲无码37.| 97视频在线观看免费视频| 亚洲天堂网在线播放| 在线观看91精品国产剧情免费| 91久久青青草原精品国产| 波多野结衣爽到高潮漏水大喷| 欧美一区二区三区不卡免费| 制服丝袜一区| 永久免费AⅤ无码网站在线观看| 亚洲自偷自拍另类小说| 国产乱视频网站| 免费国产不卡午夜福在线观看| 999国产精品永久免费视频精品久久| 久久中文无码精品| 国产一区二区三区在线观看免费| 四虎永久在线视频| 成人av手机在线观看|