Python分析最近大火的網(wǎng)劇《隱秘的角落》
前言
估計(jì)最近很火的連續(xù)劇《隱秘的角落》大家趁著端午假期都看過了吧?小編也跟著潮流,一口氣把12集的連續(xù)劇全部看完了??催^的人肯定對(duì)朋友圈里有人發(fā)的“一起去爬山”、“小白船”、“還有機(jī)會(huì)嗎”的意思心照不宣。沒看過的,如果已為人父人母的,強(qiáng)烈要求看一下。
劇很精彩,但追劇界有句俗話說得好:“彈幕往往比劇更精彩”,為了讓精彩延續(xù)下去,咱們來看看該劇彈幕的部分。電視劇是在愛奇藝獨(dú)播,因此從愛奇藝上爬蟲最為合適。
爬取彈幕
愛奇藝的彈幕數(shù)據(jù)是以 .z 形式的壓縮文件存在的,先獲取 tvid 列表,再根據(jù) tvid 獲取彈幕的壓縮文件,最后對(duì)其進(jìn)行解壓及存儲(chǔ),大概就是這樣一個(gè)過程。
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,contentsId,contents,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 條《隱秘的角落》彈幕數(shù)據(jù)。
彈幕發(fā)射器
按照用戶id分組并對(duì)彈幕id計(jì)數(shù),可以得到每位用戶的累計(jì)發(fā)送彈幕數(shù)。
#累計(jì)發(fā)送彈幕數(shù)的用戶 danmu_counts = df.groupby(uid)[contentsId].count().sort_values(ascending = False).reset_index() danmu_counts.columns = [用戶id,累計(jì)發(fā)送彈幕數(shù)] danmu_counts.head()
累計(jì)發(fā)送彈幕數(shù)用戶top5
第一名竟然發(fā)送了2561條彈幕,這只是一部12集的網(wǎng)劇啊。
難道他/她是水軍?每條都發(fā)的差不多?
df_top1 = df[df[uid] == 1810351987].sort_values(by="likeCount",ascending = False).reset_index() df_top1.head(10)
然而并不是,每一條彈幕都是這位觀眾的有感而發(fā),可能他/她只是在發(fā)彈幕的同時(shí)順便看看劇吧。
這位“彈幕發(fā)射器”朋友,在每一集的彈幕量又是如何呢?
分集&平均彈幕量
是不是通過上圖可以側(cè)面說明個(gè)別劇集的戲劇沖突更大,更能引發(fā)觀眾吐槽呢?
“彈幕發(fā)射器”同志,11、12集請(qǐng)加大輸出!
這些彈幕大家都認(rèn)同
拋開“彈幕發(fā)射器”同志,我們繼續(xù)探究一下分集的彈幕。
看看每一集當(dāng)中,哪些彈幕大家都很認(rèn)同(贊)?
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
每一集中點(diǎn)贊最多的彈幕
每一集的最佳彈幕都是當(dāng)集劇情的濃縮,這些就是觀眾們票選出來的梗(吐槽)?。?/p>
應(yīng)該不算劇透吧,不算吧,不算吧
實(shí)在不行我請(qǐng)你去爬山也可
總結(jié)
除了劇本、音樂等,“老戲骨”和“小演員”們的演技也獲得了網(wǎng)友的一致好評(píng)。
這部劇雖然短短12集,但故事線不僅僅在一兩個(gè)人身上。每個(gè)人都有自己背后的故事,又因?yàn)榉N種巧合串聯(lián)在一起,引發(fā)觀眾的持續(xù)性討論。
我們統(tǒng)計(jì)一下演員們?cè)趶椖恢械某霈F(xiàn)次數(shù),看看劇中的哪些角色大家提及最多
到此這篇關(guān)于Python分析最近大火的網(wǎng)劇《隱秘的角落》的文章就介紹到這了,更多相關(guān)python分析隱秘的角落內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PyTorch訓(xùn)練LSTM時(shí)loss.backward()報(bào)錯(cuò)的解決方案
這篇文章主要介紹了PyTorch訓(xùn)練LSTM時(shí)loss.backward()報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05掌握python polars庫(kù)進(jìn)行高效高速的數(shù)據(jù)處理。
這篇文章主要介紹了python polars庫(kù)進(jìn)行高效高速的數(shù)據(jù)處理技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01python連接mysql數(shù)據(jù)庫(kù)示例(做增刪改操作)
python連接mysql數(shù)據(jù)庫(kù)示例,提供創(chuàng)建表,刪除表,數(shù)據(jù)增、刪、改,批量插入操作,大家參考使用吧2013-12-12Python辦公自動(dòng)化之JSOM數(shù)據(jù)處理與SQL Server數(shù)據(jù)庫(kù)操作
這篇文章主要為大家詳細(xì)介紹了Python辦公自動(dòng)化中JSOM數(shù)據(jù)處理與SQL Server數(shù)據(jù)庫(kù)操作的相關(guān)知識(shí),文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考下2024-01-01python?pip安裝庫(kù)下載源更換(清華源、阿里源、中科大源、豆瓣源)
為了提高Python包的下載速度和穩(wěn)定性,可以配置國(guó)內(nèi)的鏡像源,如清華源、阿里源、中科大源和豆瓣源,設(shè)置方法簡(jiǎn)單,只需更改pip的配置文件或使用命令行即可,需要的朋友可以參考下2024-10-10基于Python實(shí)現(xiàn)視頻轉(zhuǎn)字符畫動(dòng)漫小工具
大家都知道視頻就是一幀一幀的圖片構(gòu)成的。那么想要實(shí)現(xiàn)將視頻轉(zhuǎn)換為字符畫,就要將一部視頻全部逐幀拆解成圖片,然后采取和以前相同的將圖片轉(zhuǎn)換為字符畫的算法即可。本文將詳細(xì)為大家介紹如何實(shí)現(xiàn),需要的可以參考一下2021-12-12python如何實(shí)現(xiàn)數(shù)組反轉(zhuǎn)
這篇文章主要介紹了python如何實(shí)現(xiàn)數(shù)組反轉(zhuǎn)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02AUC計(jì)算方法與Python實(shí)現(xiàn)代碼
今天小編就為大家分享一篇AUC計(jì)算方法與Python實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02