1. 程式人生 > 程式設計 >Python分析最近大火的網劇《隱祕的角落》

Python分析最近大火的網劇《隱祕的角落》

前言

估計最近很火的連續劇《隱祕的角落》大家趁著端午假期都看過了吧?小編也跟著潮流,一口氣把12集的連續劇全部看完了。看過的人肯定對朋友圈裡有人發的“一起去爬山”、“小白船”、“還有機會嗎”的意思心照不宣。沒看過的,如果已為人父人母的,強烈要求看一下。

劇很精彩,但追劇界有句俗話說得好:“彈幕往往比劇更精彩”,為了讓精彩延續下去,咱們來看看該劇彈幕的部分。電視劇是在愛奇藝獨播,因此從愛奇藝上爬蟲最為合適。

爬取彈幕

愛奇藝的彈幕資料是以 .z 形式的壓縮檔案存在的,先獲取 tvid 列表,再根據 tvid 獲取彈幕的壓縮檔案,最後對其進行解壓及儲存,大概就是這樣一個過程。

def get_data(tv_name,tv_id):
 url = https://cmts.iqiyi.com/bullet/{}/{}/{}_300_{}.z
 datas = pd.DataFrame(columns=[uid,contentsId,contents,likeCount])
 for i in range(1,20):
  myUrl = url.format(tv_id[-4:-2],tv_id[-2:],tv_id,i)
  print(myUrl)
  res = requests.get(myUrl)
  if res.status_code == 200:
   btArr = bytearray(res.content)
   xml=zlib.decompress(btArr).decode(utf-8)
   bs = BeautifulSoup(xml,"xml")
   data = pd.DataFrame(columns=[uid,likeCount])
   data[uid] = [i.text for i in bs.findAll(uid)]
   data[contentsId] = [i.text for i in bs.findAll(contentId)]
   data[contents] = [i.text for i in bs.findAll(content)]
   data[likeCount] = [i.text for i in bs.findAll(likeCount)]
  else:
   break
  datas = pd.concat([datas,data],ignore_index = True)
 datas[tv_name]= str(tv_name)
 return datas

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

Python分析最近大火的網劇《隱祕的角落》

彈幕發射器

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

#累計傳送彈幕數的使用者
danmu_counts = df.groupby(uid)[contentsId].count().sort_values(ascending = False).reset_index()
danmu_counts.columns = [使用者id,累計傳送彈幕數]
danmu_counts.head()

Python分析最近大火的網劇《隱祕的角落》

累計傳送彈幕數使用者top5

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

難道他/她是水軍?每條都發的差不多?

df_top1 = df[df[uid] == 1810351987].sort_values(by="likeCount",ascending = False).reset_index()
df_top1.head(10)

Python分析最近大火的網劇《隱祕的角落》

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

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

Python分析最近大火的網劇《隱祕的角落》

分集&平均彈幕量

是不是通過上圖可以側面說明個別劇集的戲劇衝突更大,更能引發觀眾吐槽呢?

“彈幕發射器”同志,11、12集請加大輸出!

這些彈幕大家都認同

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

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

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

Python分析最近大火的網劇《隱祕的角落》

每一集中點贊最多的彈幕

每一集的最佳彈幕都是當集劇情的濃縮,這些就是觀眾們票選出來的梗(吐槽)啊!

應該不算劇透吧,不算吧,不算吧

實在不行我請你去爬山也可

Python分析最近大火的網劇《隱祕的角落》

總結

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

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

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

到此這篇關於Python分析最近大火的網劇《隱祕的角落》的文章就介紹到這了,更多相關python分析隱祕的角落內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!