Python數(shù)據(jù)實(shí)時監(jiān)控大屏+爬蟲+Flask框架+MySQL數(shù)據(jù)庫
疫情數(shù)據(jù)實(shí)時可視化平臺 python+Flask+Echarts+mysql 計(jì)算機(jī)畢業(yè)設(shè)計(jì)
一捧存、開發(fā)技術(shù)
pycharm历涝、MySQL數(shù)據(jù)庫/sqlite3數(shù)據(jù)庫伺绽、Python3.x版本报辱、Flask框架
二、功能
用戶注冊、登錄、后臺管理員妒峦、商品數(shù)據(jù)基本信息首頁、數(shù)據(jù)統(tǒng)計(jì)分析兵睛、商品價格區(qū)間肯骇、銷售價格、銷量祖很、好評率笛丙、差評率、商品詳情
商品數(shù)據(jù)分析可視化假颇、區(qū)間餅圖胚鸯、柱狀圖、折線圖笨鸡、好評率前5姜钳、前5品牌、差評最多...............
商品數(shù)據(jù)爬蟲......
三镜豹、項(xiàng)目運(yùn)行截圖
1傲须、MySQL版本要求: 8.0 (5.x版本導(dǎo)不進(jìn)去)
2蓝牲、運(yùn)行說明:
啟動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ù)昔期,爬取騰訊疫情數(shù)據(jù)可視化平臺的數(shù)據(jù);
數(shù)據(jù)存儲方式:將爬取到的數(shù)據(jù)存入MySQL數(shù)據(jù)庫中佛玄;
數(shù)據(jù)特點(diǎn):數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)了整體數(shù)據(jù)的結(jié)構(gòu)化硼一,數(shù)據(jù)之間有聯(lián)系;備份數(shù)據(jù)梦抢,可以避免數(shù)據(jù)丟失般贼,可以被多個應(yīng)用程序共享使用,可以大大減少數(shù)據(jù)冗余,節(jié)約存儲空間哼蛆;數(shù)據(jù)獨(dú)立性高蕊梧。
二、技術(shù)說明
本項(xiàng)目運(yùn)用Python網(wǎng)絡(luò)爬蟲腮介、MySQL肥矢、Flask、ECharts叠洗、Layui為基礎(chǔ)的新冠疫情實(shí)時監(jiān)測系統(tǒng)甘改。涉及到的技術(shù)主要包括:使用Python網(wǎng)絡(luò)爬蟲爬取疫情數(shù)據(jù)、使用MySQL數(shù)據(jù)庫存儲解析得到的數(shù)據(jù)灭抑、利用Flask構(gòu)建Web項(xiàng)目十艾、利用ECharts生成可視化大屏圖、利用Layui生成后臺數(shù)據(jù)管理的網(wǎng)頁布局腾节。功能主要包括管理員的登錄疟羹、管理員對數(shù)據(jù)爬蟲進(jìn)行啟動獲取數(shù)據(jù)、管理員對后臺疫情相關(guān)數(shù)據(jù)進(jìn)行修改和刪除操作禀倔、全國新冠肺炎疫情總體狀況統(tǒng)計(jì)和展示等榄融。
Python編程語言
Python程序語言適用于數(shù)據(jù)處理、數(shù)據(jù)可視化等救湖,所以在該項(xiàng)目使用Python程序語言是非常合適的愧杯。Python可以根據(jù)pip來直接安裝大量的第三方庫,便于操作鞋既。
Python網(wǎng)絡(luò)爬蟲
網(wǎng)絡(luò)爬蟲是一種根據(jù)具體搜索規(guī)則來實(shí)現(xiàn)自動爬行的應(yīng)用程序力九。因?yàn)闃?biāo)準(zhǔn)庫和第三方庫的內(nèi)容全面而充實(shí),所以它能夠?qū)崿F(xiàn)大量的數(shù)據(jù)采集邑闺、數(shù)據(jù)分析等工作跌前。
爬蟲工作的流程:
①建立起請求,獲取響應(yīng)陡舅。
通過HTTP庫抵乓,對目標(biāo)站點(diǎn)進(jìn)行請求,就好像打開瀏覽器靶衍,輸入一個網(wǎng)址灾炭。
用到的庫∶ Urlib、Urlib3颅眶、Requests蜈出。服務(wù)器會返回請求的內(nèi)容,一般為HTML涛酗、二進(jìn)制文件铡原、文檔偷厦、JSON字符串等。
②解析內(nèi)容燕刻。
尋求自己所需的信息沪哺,即使用正則表達(dá)式或利用其他庫來提取目標(biāo)管理信息。Re庫和BeautifulSoup4庫是最常見的兩種酌儒。
③保存數(shù)據(jù)辜妓。
將分析所得到的數(shù)據(jù)持久化到文件或者數(shù)據(jù)庫中。
beautifulsoup4庫
使用beautifulsoup4解析內(nèi)容
beautifulsoup4將復(fù)雜的 HTML 文檔轉(zhuǎn)換成一個樹形結(jié)構(gòu),每個節(jié)點(diǎn)都是Python對象
?安裝:pip install beautifulsoup4
?BeautifulSoup(html)
? 獲取節(jié)點(diǎn):find()忌怎、find_all()/select()
? 獲取屬性:attrs
? 獲取文本:text
MySQL數(shù)據(jù)庫
MySQL數(shù)據(jù)庫是目前大家使用最頻繁的關(guān)系數(shù)據(jù)庫管理系統(tǒng)之一籍滴。它是瑞典MySQL AB公司發(fā)展起來的,后來被Oracle公司收購榴啸。關(guān)系型數(shù)據(jù)庫把數(shù)據(jù)存儲于不同的數(shù)據(jù)表格中孽惰,而非把所有的數(shù)據(jù)都置于一個大的倉庫中,并且表與表之間也有聯(lián)系鸥印。因此勋功,訪問的速度和靈活性得到了改善。MySQL使用的SQL語句是目前應(yīng)用最廣泛的一種規(guī)范語言库说。
?使用 pymysql 模塊與數(shù)據(jù)庫交互
?安裝: pip install pymysql
① 建立連接
② 創(chuàng)建游標(biāo)
③ 執(zhí)行操作
④ 關(guān)閉連接
Flask框架
Flask 是一個使用 Python 編寫的輕量級 Web 應(yīng)用框架狂鞋。其 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 向服務(wù)
器發(fā)送請求啰挪,接收服務(wù)器返回的json
數(shù)據(jù)信不,然后使用JavaScript 修改網(wǎng)頁
的來實(shí)現(xiàn)頁面局部數(shù)據(jù)更新
?使用 jquery 框架可方便的編寫
ajax代碼,需要 jquery.js 文件
ECharts亡呵,縮寫來自 Enterprise Charts抽活,商業(yè)級數(shù)據(jù)圖表,是百度的一個開源的數(shù)據(jù)可視化工具锰什,提供了豐富的圖表庫下硕,能夠在 PC 端和移動設(shè)備上流暢運(yùn)行。
Layui(諧音:類 UI) 是一套開源的 Web UI 解決方案歇由,采用自身經(jīng)典的模塊化規(guī)范卵牍,并遵循原生 HTML/CSS/JS 的開發(fā)方式果港,極易上手沦泌,拿來即用懈凹。其風(fēng)格簡約輕盈鱼蝉,而組件優(yōu)雅豐盈情龄,從源代碼到使用方法的每一處細(xì)節(jié)都經(jīng)過精心雕琢,非常適合網(wǎng)頁界面的快速開發(fā)褥芒。Layui 區(qū)別于那些基于 MVVM 底層的前端框架,卻并非逆道而行镀娶,而是信奉返璞歸真之道缨历。準(zhǔn)確地說,它更多是面向后端開發(fā)者千劈,你無需涉足前端各種工具祭刚,只需面對瀏覽器本身,讓一切你所需要的元素與交互墙牌,從這里信手拈來涡驮。