五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

【Python可視化大屏】“淄博燒烤”熱評輿情分析大屏

2023-06-11 07:36 作者:馬哥python說  | 我要投稿

一、開發(fā)背景

您好,我是 @馬哥python說 ,一枚10年程序猿。

自從2023.3月以來,淄博燒烤現(xiàn)象持續(xù)占領熱搜流量,體現(xiàn)了后疫情時代眾多網友對人間煙火氣的美好向往,本現(xiàn)象級事件存在一定的數(shù)據(jù)分析實踐意義。

靜態(tài)截圖:

大屏截圖

動態(tài)演示:


二、爬蟲代碼

2.1 爬微博列表

通過m端的搜索頁面,爬取以淄博燒烤為關鍵詞的微博id,獲取到微博id的目的,是傳給評論爬蟲。

發(fā)送請求部分:

注意,type=60代表"熱門",如下:

m端微博

解析數(shù)據(jù)部分:

至此,已經獲取到以淄博燒烤為關鍵詞的微博id列表 id_list_list 了。

2.2 爬微博評論

從2.1章節(jié)獲取到微博id列表之后,傳入爬取微博評論函數(shù) get_comments

這部分爬蟲講解可移步:

最終,爬取到的微博評論數(shù)據(jù),示例如下:

淄博燒烤-微博評論

說明:無論微博搜索頁,還是微博評論頁,都可以自定義設置max_page,滿足自己的個性化數(shù)據(jù)量要求。

2.3 導入MySQL數(shù)據(jù)庫

最核心的三行代碼:

用create_engine創(chuàng)建數(shù)據(jù)庫連接,格式為:

create_engine('數(shù)據(jù)庫類型+數(shù)據(jù)庫驅動://用戶名:密碼@數(shù)據(jù)庫IP地址/數(shù)據(jù)庫名稱')

這樣,數(shù)據(jù)庫連接就創(chuàng)建好了。

然后,用pandas的read_csv函數(shù)讀取csv文件。

最后,用pandas的to_sql函數(shù),把數(shù)據(jù)存入MySQL數(shù)據(jù)庫:

  • name='college_t2' #mysql數(shù)據(jù)庫中的表名?

  • con=engine # 數(shù)據(jù)庫連接?

  • index=False #不包含索引字段?

  • if_exists='replace' #如果表中存在數(shù)據(jù),就替換掉,另外,還支持append(追加數(shù)據(jù))

非常方便地完成了反向導入,即:從csv向數(shù)據(jù)庫的導入。

這個部分的講解視頻:

三、可視化代碼

3.1 大標題

由于pyecharts組件沒有專門用作標題的圖表,我決定靈活運用Line組件實現(xiàn)大標題。

首先,找到一張星空圖作為大屏背景圖:

大屏背景圖

然后,在Line組件中加入js代碼,加載背景圖:

大標題效果如下:

最上方的大標題


3.2 詞云圖(含:加載停用詞)

繪制詞云圖,需要先進行中文分詞。既然分詞,就要先設置停用詞,避免干擾詞影響分析結果。

這里采用哈工大停用詞作為停用詞詞典。

這樣,所有停用詞就存入stopwords_list這個列表里了。

如果哈工大停用詞仍然無法滿足需求,再加入一些自定義停用詞,extend到這個列表里:

現(xiàn)在就可以愉快的繪制詞云圖了,部分核心代碼:

詞云圖效果:

評論內容-詞云圖

3.3 玫瑰圖(含:snownlp情感分析)

先對評論數(shù)據(jù)進行情感判定,采用snownlp技術進行情感打分及判定結果:

將情感分析結果用pandas保存到一個Excel文件里,如下:

情感判定結果

繪制玫瑰圖,部分核心代碼:

玫瑰圖效果:

情感分布-玫瑰圖

3.4 柱形圖-TOP10關鍵詞

先根據(jù)詞云圖部分提取出TOP10高頻詞(過濾掉停用詞之后的):

然后帶入柱形圖,部分核心代碼:

柱形圖效果:

top10高頻詞-柱形圖

3.5 折線圖-討論熱度趨勢

首先,根據(jù)評論時間統(tǒng)計出每天的微博評論數(shù)量:

然后,根據(jù)統(tǒng)計數(shù)據(jù)畫出折線圖,部分核心代碼:

折線圖效果:

討論熱度趨勢-折線圖

3.6 地圖-IP分布

由于IP屬地字段都包含"來自"兩字,先進行數(shù)據(jù)清洗,將"來自"去掉:

然后統(tǒng)計各個IP屬地的數(shù)量,方便后續(xù)帶入地圖可視化:

下面開始繪制地圖,部分核心代碼:

地圖效果,如下:

評論IP分布-中國地圖

當然,地圖中的顏色,都是自己設置的十六進制顏色,可以根據(jù)自己的喜好更改。

3.7 Page組合大屏

最后,也是最關鍵的一步,把以上所有圖表組合到一起,用Page組件,并且選用DraggablePageLayout方法,即拖拽的方式,組合圖表:

本代碼執(zhí)行完畢后,打開臨時html并排版,排版完點擊Save Config,把json文件放到本目錄下。

再執(zhí)行最后一步,調用json配置文件,生成最終大屏文件。

至此,所有代碼執(zhí)行完畢,生成了最終大屏html文件。

四、彩蛋-多種顏色主題

分享一個小技巧,我設置了一鍵更換顏色主題:

只需更換ThemeType參數(shù),即可實現(xiàn)一鍵更換主題!

4.1 INFOGRAPHIC主題

INFOGRAPHIC

4.2 MACARONS主題

MACARONS

4.3 SHINE主題

SHINE

4.4 WALDEN主題

WALDEN

4.5 WESTEROS主題

WESTEROS

4.6 WHITE主題

WHITE

4.7 WONDERLAND主題

WONDERLAND

更多顏色主題等待小伙伴去發(fā)掘!

五、技術總結

整體技術開發(fā)流程,如下:

  1. requests 爬蟲發(fā)送請求

  2. json 解析返回數(shù)據(jù)

  3. re 正則表達式清洗文本

  4. pandas保存csv文件

  5. sqlalchemy 保存MySQL數(shù)據(jù)

  6. pyecharts 可視化開發(fā)

  7. snownlp 情感分析

  8. jieba 中文分詞

  9. pyecharts+page 組合大屏

  10. flask 啟動網頁服務

六、在線體驗

為了方便大家體驗可視化動態(tài)交互效果,我把此大屏部署到了服務器,請移步:

http://81.70.253.63:8888

七、演示視頻

效果演示視頻:


八、獲取完整源碼

愛學習的小伙伴,本次分析過程的完整python源碼及結果數(shù)據(jù),我已打包好,并上傳至我的微信公眾號"老男孩的平凡之路",后臺回復"淄博燒烤大屏"即可獲取。



我是@馬哥python說 ,持續(xù)分享python干貨中!?

【Python可視化大屏】“淄博燒烤”熱評輿情分析大屏的評論 (共 條)

分享到微博請遵守國家法律
綦江县| 曲阳县| 汪清县| 中山市| 宜兰市| 特克斯县| 昌都县| 牟定县| 腾冲县| 建水县| 北票市| 车致| 米易县| 蕲春县| 延寿县| 德清县| 岱山县| 濉溪县| 洪泽县| 建德市| 建阳市| 沁阳市| 阿鲁科尔沁旗| 蚌埠市| 通城县| 潞城市| 越西县| 当涂县| 安阳县| 台北县| 仪征市| 二连浩特市| 台安县| 新邵县| 布尔津县| 万全县| 余干县| 四平市| 修武县| 龙岩市| 游戏|