Python數(shù)據(jù)實時監(jiān)控大屏+爬蟲+Flask框架+MySQL數(shù)據(jù)庫
疫情數(shù)據(jù)實時可視化平臺 python+Flask+Echarts+mysql 計算機畢業(yè)設計
一鲜戒、開發(fā)技術
pycharm橄妆、MySQL數(shù)據(jù)庫/sqlite3數(shù)據(jù)庫谬哀、Python3.x版本局雄、Flask框架
二寞射、功能
用戶注冊劈伴、登錄牵辣、后臺管理員、商品數(shù)據(jù)基本信息首頁姑曙、數(shù)據(jù)統(tǒng)計分析襟交、商品價格區(qū)間、銷售價格伤靠、銷量捣域、好評率啼染、差評率、商品詳情
商品數(shù)據(jù)分析可視化焕梅、區(qū)間餅圖迹鹅、柱狀圖、折線圖贞言、好評率前5斜棚、前5品牌、差評最多...............
商品數(shù)據(jù)爬蟲......
三该窗、項目運行截圖
1弟蚀、MySQL版本要求: 8.0 (5.x版本導不進去)
2、運行說明:
啟動app.py文件酗失,瀏覽器打開可視化大屏:http://127.0.0.1:5000/
系統(tǒng)后臺頁面:http://127.0.0.1:5000/login
賬號admins ???密碼 admins
一义钉、數(shù)據(jù)集說明
數(shù)據(jù)格式:數(shù)據(jù)集存入一個以yiqing.sql命名的sql文件中;
數(shù)據(jù)來源:通過Python的爬蟲技術规肴,爬取騰訊疫情數(shù)據(jù)可視化平臺的數(shù)據(jù)捶闸;
數(shù)據(jù)存儲方式:將爬取到的數(shù)據(jù)存入MySQL數(shù)據(jù)庫中;
數(shù)據(jù)特點:數(shù)據(jù)庫系統(tǒng)實現(xiàn)了整體數(shù)據(jù)的結構化拖刃,數(shù)據(jù)之間有聯(lián)系删壮;備份數(shù)據(jù),可以避免數(shù)據(jù)丟失序调,可以被多個應用程序共享使用醉锅,可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間发绢;數(shù)據(jù)獨立性高硬耍。
二、技術說明
本項目運用Python網(wǎng)絡爬蟲边酒、MySQL经柴、Flask、ECharts墩朦、Layui為基礎的新冠疫情實時監(jiān)測系統(tǒng)坯认。涉及到的技術主要包括:使用Python網(wǎng)絡爬蟲爬取疫情數(shù)據(jù)、使用MySQL數(shù)據(jù)庫存儲解析得到的數(shù)據(jù)氓涣、利用Flask構建Web項目牛哺、利用ECharts生成可視化大屏圖、利用Layui生成后臺數(shù)據(jù)管理的網(wǎng)頁布局劳吠。功能主要包括管理員的登錄引润、管理員對數(shù)據(jù)爬蟲進行啟動獲取數(shù)據(jù)、管理員對后臺疫情相關數(shù)據(jù)進行修改和刪除操作痒玩、全國新冠肺炎疫情總體狀況統(tǒng)計和展示等淳附。
Python編程語言
Python程序語言適用于數(shù)據(jù)處理议慰、數(shù)據(jù)可視化等,所以在該項目使用Python程序語言是非常合適的奴曙。Python可以根據(jù)pip來直接安裝大量的第三方庫别凹,便于操作。
Python網(wǎng)絡爬蟲
網(wǎng)絡爬蟲是一種根據(jù)具體搜索規(guī)則來實現(xiàn)自動爬行的應用程序洽糟。因為標準庫和第三方庫的內(nèi)容全面而充實炉菲,所以它能夠?qū)崿F(xiàn)大量的數(shù)據(jù)采集、數(shù)據(jù)分析等工作脊框。
爬蟲工作的流程:
①建立起請求颁督,獲取響應。
通過HTTP庫浇雹,對目標站點進行請求,就好像打開瀏覽器屿讽,輸入一個網(wǎng)址昭灵。
用到的庫∶ Urlib、Urlib3伐谈、Requests烂完。服務器會返回請求的內(nèi)容,一般為HTML诵棵、二進制文件抠蚣、文檔、JSON字符串等履澳。
②解析內(nèi)容嘶窄。
尋求自己所需的信息,即使用正則表達式或利用其他庫來提取目標管理信息距贷。Re庫和BeautifulSoup4庫是最常見的兩種柄冲。
③保存數(shù)據(jù)。
將分析所得到的數(shù)據(jù)持久化到文件或者數(shù)據(jù)庫中忠蝗。
beautifulsoup4庫
使用beautifulsoup4解析內(nèi)容
beautifulsoup4將復雜的 HTML 文檔轉(zhuǎn)換成一個樹形結構,每個節(jié)點都是Python對象
?安裝:pip install beautifulsoup4
?BeautifulSoup(html)
? 獲取節(jié)點:find()现横、find_all()/select()
? 獲取屬性:attrs
? 獲取文本:text
MySQL數(shù)據(jù)庫
MySQL數(shù)據(jù)庫是目前大家使用最頻繁的關系數(shù)據(jù)庫管理系統(tǒng)之一。它是瑞典MySQL AB公司發(fā)展起來的阁最,后來被Oracle公司收購戒祠。關系型數(shù)據(jù)庫把數(shù)據(jù)存儲于不同的數(shù)據(jù)表格中,而非把所有的數(shù)據(jù)都置于一個大的倉庫中速种,并且表與表之間也有聯(lián)系姜盈。因此,訪問的速度和靈活性得到了改善哟旗。MySQL使用的SQL語句是目前應用最廣泛的一種規(guī)范語言贩据。
?使用 pymysql 模塊與數(shù)據(jù)庫交互
?安裝: pip install pymysql
① 建立連接
② 創(chuàng)建游標
③ 執(zhí)行操作
④ 關閉連接
Flask框架
Flask 是一個使用 Python 編寫的輕量級 Web 應用框架栋操。其 WSGI(Python Web Server Gateway Interface) 工具包采用 Werkzeug ,模板引擎則使用 Jinja2 饱亮,是目前十分流行的 web 框架矾芙。
? Flask 獲取請求參數(shù)
? 使用 request 對象獲取參數(shù)
① request.values 獲取參數(shù)字典
② request.values.get("參數(shù)名")
? 使用 Ajax 局部刷新頁面
?Ajax 是 Asynchronous JavaScript
and XML 的簡稱,通過 Ajax 向服務
器發(fā)送請求近上,接收服務器返回的json
數(shù)據(jù)剔宪,然后使用JavaScript 修改網(wǎng)頁
的來實現(xiàn)頁面局部數(shù)據(jù)更新
?使用 jquery 框架可方便的編寫
ajax代碼,需要 jquery.js 文件
ECharts壹无,縮寫來自 Enterprise Charts葱绒,商業(yè)級數(shù)據(jù)圖表,是百度的一個開源的數(shù)據(jù)可視化工具斗锭,提供了豐富的圖表庫地淀,能夠在 PC 端和移動設備上流暢運行。
Layui(諧音:類 UI) 是一套開源的 Web UI 解決方案岖是,采用自身經(jīng)典的模塊化規(guī)范帮毁,并遵循原生 HTML/CSS/JS 的開發(fā)方式,極易上手豺撑,拿來即用烈疚。其風格簡約輕盈,而組件優(yōu)雅豐盈聪轿,從源代碼到使用方法的每一處細節(jié)都經(jīng)過精心雕琢爷肝,非常適合網(wǎng)頁界面的快速開發(fā)。Layui 區(qū)別于那些基于 MVVM 底層的前端框架陆错,卻并非逆道而行灯抛,而是信奉返璞歸真之道。準確地說危号,它更多是面向后端開發(fā)者牧愁,你無需涉足前端各種工具,只需面對瀏覽器本身外莲,讓一切你所需要的元素與交互猪半,從這里信手拈來。