首頁 > 科技

《中國醫生》值不值得看?Python爬取4w+觀影資料告訴你答案

2021-07-28 03:12:43

前言

最近一部根據真實事件改編的《中國醫生》正在火熱上映,感動了無數觀眾,更獲鍾南山院士高度評價:「真正體現了中國醫生的良心、責任、決心、行動!」

影片以金銀潭醫院為核心故事背景,將抗疫中各地發生的真人真事濃縮凝練,全景式還原記錄了波瀾壯闊、艱苦卓絕的抗疫鬥爭。

網友也對《中國醫生》原型展開熱烈討論,關於《中國醫生》的話題在多個平臺登上熱搜,今天我們就通過抓取近4萬條評論資料,看看電影觀眾們對這部電影的評價究竟如何?

一、核心功能設計

總體來說,我們需要先從貓眼電影爬取《中國醫生》的影評資料,並將這些資料進行視覺化分析展示。

拆解需求,大致可以整理出我們需要分為以下幾步完成:

  1. 通過爬蟲獲取貓眼APP的評論資料,包括使用者名,使用者城市,評論內容,星級打分,評論時間等。

  2. 對獲取的評論資料進行預處理,獲取使用者對於電影的星級評分,並通過餅圖進行視覺化顯示。

  3. 根據評論資料中的城市進行觀影使用者區域分佈視覺化。

  4. 對影評內容進行詞雲繪製。

二、實現步驟

1. 爬取資料

首先我們需要獲取貓眼APP上的評論資料,通過分析發現,貓眼APP的評論資料介面為:https://m.maoyan.com/mmdb/comments/movie/1337700.json_v_=yes&offset=0&startTime=2021-07-14%2022%3A25%3A03。

根據對資料分析,返回的json格式資料,可以發現:

  • 1337700就是代表《中國醫生》電影的id

  • offset表示偏移量

  • startTime表示獲取評論的起始時間

  • cmts表示評論,每次獲取15條,offset偏移量是指每次獲取評論時的起始索引,向後取15條

  • cmts中有我們需要的使用者id、使用者名、城市名、評論內容、評論星級分數、評論時間等資訊

網頁結構我們上面已經分析好了,那麼我們就可以來動手爬取我們所需要的資料了。獲取到所有的資料資源之後,可以把這些資料儲存下來。

獲取資料:

處理資料:

儲存資料:

這樣我們就可以把需要用到的觀影使用者資料儲存下來了,效果如下:

資料獲取儲存之後,接下來我們就需要對資料進行視覺化顯示。 這裡使用的是pyecharts,是一個用於生成Echarts圖表的類庫,便於在Python中根據資料生成視覺化的圖表。

2. 星級評分

我們根據上面獲取的觀影資料,其中有一個score屬性代表電影分數,我們需要讀取使用者的評分進行一星至五星格式轉換。

拿到對應的星級資料之後,我們可以繪製餅狀圖檢視電影評分比例資料。

效果如下:

從圖中可以看出,五星比例接近89.5%,四星比例為6.5%,兩者合計高達96%,可見《中國醫生》電影的口碑還是相當不錯的。

3. 觀影使用者分佈

我們還可以根據儲存的資料中cityName獲取觀影使用者的地點分佈情況。

獲取評論中所有城市:

統計每個城市出現的次數:

繪製觀影使用者Top25分佈:

效果如下:

觀影使用者地區分佈:

效果如下:

電影消費是城市消費的一部分,從某種角度來看,可以作為考察一個城市購買力的指標。可以看出這些觀影使用者較多的城市在近年的GDP排行中也大多數居上游,消費水平較高。

4. 影評詞雲圖

首先我們需要準備工作,安裝jieba用來進行評論內容分詞。jieba是一個基於Python的分詞庫,完美支援中文分詞,功能強大。

還要安裝wordcloud,一個基於Python的詞雲生成類庫,可以生成詞雲圖。

pyecharts v0.3.2以後,pyecharts 將不再自帶地圖 js 檔案。如使用者需要用到地圖圖表,可自行安裝對應的地圖檔案包。

準備工作完成之後,我們就可以根據儲存的電影評論資料,繪製詞雲圖了。

獲取所有評論:

設定分詞、遮蔽詞:

繪製詞雲圖:

效果如下:

至此,《中國醫生》電影分析視覺化就完成啦~

從分析可以看出,電影整體口碑還是很不錯的,故事中有好多淚點,展現出了中國醫生的敬業、中國醫生的力量,中國醫生的責任,身為中國人,身邊有一群這樣的天使,感到無比的驕傲!為中國醫生點贊!

今天我們就到這裡,明天繼續努力!

若本篇內容對您有所幫助,請三連點贊,關注,收藏支援下。

想了解更多精彩內容,快來關注計算機java程式設計


IT145.com E-mail:sddin#qq.com