《向往的生活》彈幕抓取與分析

《向往的生活》彈幕抓取與分析

《向往的生活》是湖南衛(wèi)視一檔十分溫馨的生活類真人秀綜藝節(jié)目,目前第三季正在更新中鸭叙,常駐嘉賓加入了張子楓熬甚,深受廣大觀眾的喜歡。而該節(jié)目的豆瓣評(píng)分也達(dá)到了7.9聊品。這檔綜藝以明星藝人到村寨里體驗(yàn)生活為主線飞蹂,融入了美食,勞動(dòng)翻屈,幽默的元素陈哑,讓人邊看邊有身臨其境的感覺,仿佛自身也真正進(jìn)入了“向往的生活”伸眶。

向往的生活豆瓣評(píng)分

近些天在看節(jié)目的時(shí)候惊窖,看到彈幕上大家討論的特別熱鬧,突發(fā)奇想能不能把所有的彈幕爬下來做一下分析呢厘贼。一方面探究一下彈幕數(shù)據(jù)抓取有沒有特別之處界酒,另一方面通過彈幕對(duì)這個(gè)節(jié)目的口碑一探究竟。接下來以上周五剛更新的第5期為例嘴秸,進(jìn)行彈幕數(shù)據(jù)抓取毁欣。代碼主要使用requests庫,抓取結(jié)果存儲(chǔ)在csv文件中岳掐。

網(wǎng)頁分析

在芒果TV網(wǎng)頁版打開第5期節(jié)目凭疮,等待廣告加載完畢,同時(shí)打開chrome開發(fā)者工具的network選項(xiàng)卡串述。由于請(qǐng)求很多执解,而且隨著時(shí)間推移,會(huì)越來越多纲酗。所以我采取了先清空再等待的方式衰腌。發(fā)現(xiàn)前面大多加載的都是圖片新蟆,自然這不是我們的目標(biāo)。過了一會(huì)兒之后右蕊,發(fā)現(xiàn)一條可疑的請(qǐng)求琼稻,見下圖所示,點(diǎn)擊一看尤泽,真的出現(xiàn)了彈幕內(nèi)容欣簇。interval是60,猜測可能是表示一個(gè)間隔坯约,每60s會(huì)有一個(gè)新的請(qǐng)求熊咽。于是使用filter過濾了以“rdb”開頭的請(qǐng)求,發(fā)現(xiàn)這些都是彈幕闹丐,而且next都是60000的倍數(shù)横殴,猜測表示的是60000毫秒,也就是60秒卿拴。

找到彈幕請(qǐng)求鏈接
過濾彈幕請(qǐng)求

接下來我們需要確認(rèn)彈幕的翻頁邏輯衫仑,也就是這些彈幕鏈接的統(tǒng)一規(guī)律。這里推薦一個(gè)很好用的網(wǎng)頁請(qǐng)求分析工具postman堕花。它不僅可以用來分析網(wǎng)頁的請(qǐng)求參數(shù)文狱,還能夠提供不同語言的請(qǐng)求代碼,稍加修改就可以使用缘挽。把剛剛我們找到的鏈接貼到postman中瞄崇。如圖所示,可以看到請(qǐng)求的參數(shù)壕曼,點(diǎn)擊send按鈕之后能看到請(qǐng)求的結(jié)果苏研。由于參數(shù)很多,可以考慮去掉一些無用的參數(shù)腮郊。最終發(fā)現(xiàn)摹蘑,只需要保留vid,cid轧飞,time三個(gè)參數(shù)即可衅鹿。猜測vid表示節(jié)目id,cid表示視頻id过咬,time應(yīng)該是請(qǐng)求時(shí)刻塘安,是一個(gè)相對(duì)值。并且請(qǐng)求結(jié)果中援奢,而每一條彈幕的時(shí)間,都要比time數(shù)值大忍捡。結(jié)合上文的分析邏輯集漾,可以得出每一個(gè)請(qǐng)求結(jié)果都是請(qǐng)求時(shí)間60s內(nèi)的彈幕切黔。如果我們要獲取所有的彈幕,就可以通過改變time的值來實(shí)現(xiàn)具篇。最小的time取值應(yīng)該是0纬霞,最大的應(yīng)該就是和視頻時(shí)長最接近的60000倍數(shù)的毫秒數(shù)。這里的節(jié)目時(shí)長為89:49驱显。經(jīng)過驗(yàn)證诗芜,果然如此,接下來我們就可以用代碼來實(shí)現(xiàn)了埃疫。

使用postman測試請(qǐng)求參數(shù)

使用postman測試time請(qǐng)求參數(shù)
代碼實(shí)現(xiàn)

使用requests構(gòu)造網(wǎng)絡(luò)請(qǐng)求伏恐,并用一個(gè)循環(huán)控制翻頁,爬取全部的彈幕栓霜。解析返回的json數(shù)據(jù)并使用pandas存儲(chǔ)到Excel中翠桦。詳細(xì)代碼如下所示,一共45行胳蛮。

import requests
import pandas as pd
import time
import datetime
from fake_useragent import UserAgent

ua = UserAgent()
url = "https://galaxy.bz.mgtv.com/rdbarrage"

rdb_content = {'id': [], 'type': [], 'uid': [], 'content': [], 'add_time': [], 'ups': []}
count = 0

print("爬取開始時(shí)間: {}".format(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))

for i in range(0, 91):

    querystring = {"version": "2.0.0", "vid": "5683459", "cid": "328724", "time": i*60000}

    headers = {
        'User-Agent': ua.random
        }

    try:
        response = requests.request("GET", url, headers=headers, params=querystring).json()
        items = response['data']['items']
        if items is None:
            print("爬取完畢销凑!彈幕數(shù)量{}".format(count))
            break
        else:
            for item in items:
                rdb_content['id'].append(item.get('id')) #彈幕id
                rdb_content['type'].append(item.get('type')) #彈幕類型
                rdb_content['uid'].append(item.get('uid')) #用戶id
                rdb_content['content'].append(item.get('content')) #彈幕內(nèi)容
                rdb_content['add_time'].append(item.get('time')) #彈幕時(shí)間
                rdb_content['ups'].append(item.get('up', 0)) #d彈幕點(diǎn)贊數(shù)
                count = count + 1

            print("爬取第{}分鐘的彈幕...,當(dāng)前彈幕數(shù)量{}".format(i + 1, count))
        time.sleep(5)
    except:
        print("第{}分鐘彈幕爬取失敗!當(dāng)前彈幕數(shù)量{}".format(i + 1, count))
        continue
    rdb_df = pd.DataFrame(rdb_content)
    rdb_df.to_csv('rdb.csv', index=None)

運(yùn)行效果截圖:

運(yùn)行效果

可以看出仅炊,在本次爬取時(shí)斗幼,彈幕數(shù)量已經(jīng)將近3w條,而此時(shí)節(jié)目更新還不到2天抚垄,在一定程度可以反映出該節(jié)目的火爆程度蜕窿。接下來我們對(duì)彈幕數(shù)據(jù)做一些深入的分析,從數(shù)據(jù)的角度看這期節(jié)目督勺。

數(shù)據(jù)可視化

以上爬取的數(shù)據(jù)渠羞,有一些字段存在缺失,但是占比極小智哀,因此采取刪除的方式處理次询,最終剩余28602條有效數(shù)據(jù)。

數(shù)據(jù)預(yù)處理-刪除重復(fù)值

01 不同時(shí)間段彈幕數(shù)量的分布

節(jié)目時(shí)長大約90分鐘瓷叫,我們分別以1分鐘和10分鐘為單位屯吊,看一下彈幕數(shù)量∧〔ぃ可以看出盒卸,雖然隨著時(shí)間推移,彈幕數(shù)量有所波動(dòng)次氨,但整體來講蔽介,在各個(gè)時(shí)間,彈幕波動(dòng)不劇烈,也反映出節(jié)目能夠持續(xù)保持較高的熱度虹蓄,可謂“分分鐘都是精彩”犀呼。


每分鐘彈幕數(shù)量柱形圖 .png
每十分鐘彈幕數(shù)量柱形圖.png

02 不同長度的彈幕數(shù)量分布

不同彈幕長度柱形圖.png

可以看出,大多數(shù)彈幕的長度都集中于10個(gè)字上下薇组,趨向于口語化外臂。這也符合我們的認(rèn)知,10字左右已經(jīng)足以表達(dá)用戶看劇的心情和觀點(diǎn)律胀。當(dāng)然也有不嫌麻煩的用戶宋光,彈幕數(shù)量達(dá)到了30字以上,也有極少量的彈幕長度達(dá)到了50以上炭菌。出于好奇罪佳,我們可以看一下長度超過50的彈幕都說了啥,見下圖所示娃兽,多少能夠感受到觀眾十分用心地在享受節(jié)目菇民。

長度超過50彈幕.png

03 彈幕點(diǎn)贊數(shù)分布

點(diǎn)贊數(shù)量區(qū)間.png

可以看出有接近四分之一分彈幕沒有獲得點(diǎn)贊。近6成的彈幕點(diǎn)贊量在20以下投储,點(diǎn)贊量20以上的彈幕不到20%第练。我們同樣可以看一下點(diǎn)贊大于300的彈幕都說了啥,但從彈幕就能感受到節(jié)目整體的歡樂氣氛玛荞。

點(diǎn)贊超過300彈幕.png

04 用戶發(fā)布的彈幕數(shù)量娇掏,點(diǎn)贊數(shù),彈幕總字?jǐn)?shù)對(duì)比

我們的數(shù)據(jù)中共有17268名用戶發(fā)布了28602條彈幕勋眯,按照點(diǎn)贊數(shù)降序排列取前10婴梧,觀察彈幕數(shù)量,點(diǎn)贊數(shù)客蹋,彈幕總字?jǐn)?shù)塞蹭。可以看出讶坯,點(diǎn)贊數(shù)高的用戶番电,發(fā)布的彈幕數(shù)量也多,字?jǐn)?shù)相應(yīng)也很多辆琅。

各用戶彈幕情況對(duì)比.png

05 彈幕使用emoji表情情況

彈幕emoji表情使用情況.png

06 詞云圖

通過對(duì)彈幕進(jìn)行分詞處理漱办,繪制出以下的詞云圖。

彈幕詞云圖

看著這個(gè)詞云圖婉烟,瞬間感覺有溢出屏幕的歡樂娩井,好像耳朵也能音樂聽見斷斷續(xù)續(xù)的“哈哈哈哈”聲,群眾的眼睛是雪亮的似袁,能讓人如此開心的節(jié)目洞辣,火起來自然也就不足為奇了咐刨。

至此,我們基本完成了《向往的生活》第5期節(jié)目彈幕的抓取與簡單的可視化分析工作屋彪。更多有趣的點(diǎn)大家可以自己去分析和發(fā)現(xiàn)所宰。本來我還調(diào)用了百度的情感分析API,想對(duì)彈幕的情感傾向進(jìn)行分析畜挥,但效果好像不是太好,結(jié)果就沒有貼出來婴谱。感興趣的盆友可以看代碼蟹但。歡迎關(guān)注公眾號(hào)“超哥的雜貨鋪”,在后臺(tái)回復(fù)“向往的生活”索取源代碼谭羔。祝大家生活愉快华糖!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瘟裸,隨后出現(xiàn)的幾起案子客叉,更是在濱河造成了極大的恐慌,老刑警劉巖话告,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兼搏,死亡現(xiàn)場離奇詭異,居然都是意外死亡沙郭,警方通過查閱死者的電腦和手機(jī)佛呻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來病线,“玉大人吓著,你說我怎么就攤上這事∷吞簦” “怎么了绑莺?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長惕耕。 經(jīng)常有香客問我纺裁,道長,這世上最難降的妖魔是什么赡突? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任对扶,我火速辦了婚禮,結(jié)果婚禮上惭缰,老公的妹妹穿的比我還像新娘浪南。我一直安慰自己,他們只是感情好漱受,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布络凿。 她就那樣靜靜地躺著骡送,像睡著了一般。 火紅的嫁衣襯著肌膚如雪絮记。 梳的紋絲不亂的頭發(fā)上摔踱,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音怨愤,去河邊找鬼派敷。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撰洗,可吹牛的內(nèi)容都是我干的篮愉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼差导,長吁一口氣:“原來是場噩夢啊……” “哼试躏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起设褐,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤颠蕴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后助析,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體犀被,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年貌笨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弱判。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡锥惋,死狀恐怖昌腰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膀跌,我是刑警寧澤遭商,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捅伤,受9級(jí)特大地震影響劫流,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丛忆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一祠汇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熄诡,春花似錦可很、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苇本。三九已至,卻和暖如春菜拓,著一層夾襖步出監(jiān)牢的瞬間瓣窄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工纳鼎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俺夕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓贱鄙,卻偏偏與公主長得像啥么,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贰逾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容