Python爬取201865條《隱祕的角落》彈幕,發現看劇不如爬山?

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

最近又火了一部國產劇:《隱祕的角落》。

如果你沒看過,那可能會對朋友圈裏大家說的“一起去爬山”、“小白船”、“還有機會嗎”感到莫名其妙。

image


暑期推薦旅遊(來源微博)

小五在這個端午假期也趕緊刷完了本劇,必須要寫篇文章了。

由於《隱祕的角落》是在愛奇藝獨播,所以數據從愛奇藝下手最直接。

如果沒爬過愛奇藝,可以考慮使用豆瓣、微博、知乎(電視劇數據分析 · 萬能三件套)的數據。

爬蟲

劇很精彩,但追劇界有句俗話說得好:“彈幕往往比劇更精彩”,爲了讓精彩延續下去,我終究沒能忍住對彈幕下手。[1]
愛奇藝的彈幕數據是以 .z 形式的壓縮文件存在的,先獲取 tvid 列表,再根據 tvid 獲取彈幕的壓縮文件,最後對其進行解壓及存儲,大概就是這樣一個過程。
這裏參考了“數據兔小白[2]的代碼,我又修改後實現分集爬取所有彈幕。

image


注:避免引起不必要的麻煩,本爬蟲僅指出關鍵步驟,不再公開提供。


共爬取得到201865 條《隱祕的角落》彈幕數據。

image

彈幕發射器

按照用戶id分組並對彈幕id計數,可以得到每位用戶的累計發送彈幕數。

累計發送彈幕數的用戶

danmu_counts = df.groupby('uid')['contentsId'].count().sort_values(ascending = False).reset_index()
danmu_counts.columns = ['用戶id','累計發送彈幕數']
danmu_counts.head()

image


累計發送彈幕數用戶top5

第一名竟然發送了2561條彈幕,這只是一部12集的網劇啊。

難道他/她是水軍?每條都發的差不多?
df_top1 = df[df['uid'] == 1810351987].sort_values(by="likeCount",ascending = False).reset_index()
df_top1.head(10)

image


然而並不是,每一條彈幕都是這位觀衆的有感而發,可能他/她只是在發彈幕的同時順便看看劇吧。

這位“彈幕發射器”朋友,在每一集的彈幕量又是如何呢?

image


分集&平均彈幕量

是不是通過上圖可以側面說明個別劇集的戲劇衝突更大,更能引發觀衆吐槽呢?
“彈幕發射器”同志,11、12集請加大輸出!

這些彈幕大家都認同

拋開“彈幕發射器”同志,我們繼續探究一下分集的彈幕。

看看每一集當中,哪些彈幕大家都很認同(贊)?

df_like = df[df.groupby(['tv_name'])['likeCount'].rank(method="first", ascending=False)==1].reset_index()[['tv_name','contents','likeCount']]
df_like.columns = ['劇集','彈幕','贊']
df_like

image


每一集中點贊最多的彈幕

每一集的最佳彈幕都是當集劇情的濃縮,這些就是觀衆們票選出來的梗(吐槽)啊!
應該不算劇透吧,不算吧,不算吧
實在不行我請你去爬山也可

image

朝陽東昇

除了劇本、音樂等,“老戲骨”和“小演員”們的演技也獲得了網友的一致好評。

這部劇雖然短短12集,但故事線不僅僅在一兩個人身上。每個人都有自己背後的故事,又因爲種種巧合串聯在一起,引發觀衆的持續性討論。

我們統計一下演員們在彈幕中的出現次數,看看劇中的哪些角色大家提及最多。

a = {'張東昇':'東昇|秦昊|張老師', '朱朝陽':'朝陽', '嚴良':'嚴良', '普普':'普普', '朱永平':'朱永平', '周春紅':'春紅|大娘子', '王瑤':'王瑤', '徐靜':'徐靜|黃米依', '陳冠聲':'王景春|老陳|陳冠聲', '葉軍':'葉軍|皮卡皮卡', '馬主任':'主任|老馬', '朱晶晶':'晶晶','葉馳敏':'葉馳敏'}

a = {'張東昇':'東昇|秦昊|張老師', '朱朝陽':'朝陽', '嚴良':'嚴良', '普普':'普普', '朱永平':'朱永平', '周春紅':'春紅|大娘子', '王瑤':'王瑤', '徐靜':'徐靜|黃米依', '陳冠聲':'王景春|老陳|陳冠聲', '葉軍':'葉軍|皮卡皮卡', '馬主任':'主任|老馬', '朱晶晶':'晶晶','葉馳敏':'葉馳敏'}
for key, value in a.items():

df[key] = df['contents'].str.contains(value)

staff_count = pd.Series({key: df.loc[df[key], 'contentsId'].count() for key in a.keys()}).sort_values()

先計算出現次數,再利用pyecharts製作極座標圖。

image


彈幕中提到的主要演員

比較讓我疑惑的三個小孩當中的朱朝陽提及量這麼低,按理說應該與其其他兩位大體相當啊。
又去源數據看了一遍,提及朱朝陽(朝陽)的彈幕確實很少,因爲大部分在彈幕中觀衆一般就叫他“學霸”、“兒子”之類的了。

詞雲

總所周知,一篇數分文章不能少了詞雲。
每篇的詞雲都儘量跟上篇文章不同,這次我採用的是stylecloud,它算是wordcloud詞雲包的升級版,看起來美觀多了。
import stylecloud
from IPython.display import Image

stylecloud.gen_stylecloud(text=' '.join(text1), collocations=False,

                      font_path=r'‪C:\Windows\Fonts\msyh.ttc',
                      icon_name='fas fa-play-circle',size=400,
                      output_name='隱祕的角落-詞雲.png')

Image(filename='隱祕的角落-詞雲.png')

image


20萬條彈幕詞雲

除了主角的名字以外,在這部以“孩子”爲主題的劇中,對孩子的思想、行爲的探討佔據重要部分,另外,劇中從年長的戲骨到年幼的孩子,每一個人都貢獻了高光的演技,對他們演技的稱讚也成爲高頻詞彙。
而最出圈的“爬山”梗,更是被頻頻提及。

image


一起爬山嗎?

從《無證之罪》到《隱祕的角落》,都在證明懸疑犯罪題材在當下並非沒有市場,要收穫高人氣高口碑,如何傳播與營銷終歸只是手段,越來越多的團隊沉下心來打磨精品劇集,觀衆纔會願意爲劇買單,讓“爬山”這樣的梗一步步“出圈”。

本文相關數據和可視化源碼下載:
https://alltodata.cowtransfer.com/s/5b483c08987243

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-06-29
本文作者:朱小五
本文來自:“AI科技大本營”,瞭解相關信息可以關注“AI科技大本營

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章