《黑神話:悟空》B站彈幕、知乎回答分析

最近行哥看到一部燃爆的游戲試玩短片火遍全網(wǎng)---《黑神話:悟空》,短短四天在B站便獲得2100萬+播放量。知乎也都在從各個角度評論這款游戲,所以行哥今天分別爬取上萬條《黑神話:悟空》在B站的彈幕和知乎的回答,來看看這款游戲的評價到底怎么樣
1.爬取B站彈幕
2爬取知乎回答
3.詞云分析
4.結論
5.參考
1.爬取B站彈幕

短短四天,該視頻便有2100萬+播放量和26萬+彈幕,想爬取B站彈幕網(wǎng)上已經(jīng)有了各種介紹文章,但大多都是利用api進行爬取,有些api也已經(jīng)不再維護了。
所以行哥今天著重介紹下如何通過抓包--> requests來進行爬取B站彈幕,首先打開采集彈幕的視頻,然后F12--> Network

雖然打開彈幕列表只能找到類似彈幕但被加密的數(shù)據(jù)包,但是我們可以通過點擊彈幕列表—>查看歷史彈幕,并選擇任意一天的歷史彈幕,此時就能找到存儲該日期彈幕的ajax數(shù)據(jù)包,所有的彈幕都藏在一個i標簽中
利用請求查看彈幕的ResquestURL主要是oid和date兩個參數(shù)組成的,這兩個參數(shù)也很輕松能夠在數(shù)據(jù)包中找到,那就可以進行構建URL
def?get_url(oid,start,end):
????'''
????獲取指定日期的彈幕
??? oid:視頻oid
??? start,end:起止日期
????'''
????url_list?=?[]
????date_list?=?[i?for?i?in?pd.date_range(start,end).strftime('%Y-%m-%d')]
????for?date?in?date_list:
????????url?=?f"https://api.bilibili.com/x/v2/dm/history?type=1&oid={oid}&date={date}"
????????url_list.append(url)
????????
????return?url_list
接下來要做的就是使用requests請求網(wǎng)站并使用bs4解析數(shù)據(jù),最后將數(shù)據(jù)寫入TXT即可。不過該方法限制每天只能獲取1500條彈幕,所以本文爬取了20200820-20200824總共7500條彈幕,核心代碼如下,需要全部源碼可以在公眾號[一行數(shù)據(jù)]后臺回復[黑神話]即可獲取
if?__name__?==?"__main__":
????#需要手動設置爬取彈幕的起止日期!
????#oid獲取說明詳見公眾號:一行數(shù)據(jù)
????start?=?'20/8/2020'
????end?=?'24/8/2020'
????name?=?input("請輸入視頻名稱")
????oid?=?input("請輸入對應視頻oid")?#?226204073
????#?print("========正在爬取彈幕=========")
????url_list?=?get_url(oid,?start,?end)
????get_danmu(url_list,?name)
????print(f"{name}.txt已生成")
2爬取知乎回答

之前行哥有分享過如何爬取知乎一個問題下所有回答的推文,以下核心代碼是利用知乎api進行獲取所有4433個回答,如需要全部源碼可以在公眾號[一行數(shù)據(jù)]后臺回復[黑神話]即可獲取
def?getAnswers(qid,title):
????#?全部源碼請關注公眾號:一行數(shù)據(jù)
????offset?=?0
????num?=?1
????f?=?open("知乎回答_%s.txt"?%?title,?"a")
????while?True:
????????qid?=?qid
????????print('Offset?=',?offset)
????????#?知乎api請求
????????data?=?getAnser(qid,?offset)
????????#?print(data)
????????if?len(data['data'])?==?0:
????????????break
????????for?line?in?data['data']:
????????????#?print(line)
????????????dr?=?re.compile(r'<[^>]+>',?re.S)
????????????dd?=?dr.sub('',?line['content'])
????????????f.write(dd)
????????????print(dd)
????????offset?+=?20
3.詞云分析
利用之前行哥分享過的stylecloud工具包,兩行代碼便可以自動提取文字并生成漂亮的詞云圖,代碼如下:
from?stylecloud?import?gen_stylecloud
gen_stylecloud(file_path='B站彈幕_黑神話.txt',collocations=False,palette='tableau.GreenOrange_6',font_path=r'ziti.ttf',stopwords=False,icon_name='fas fa-thumbs-up',size=400,output_name='b_answer.png')


4.結論
從上圖詞云可以看到B站彈幕更多的是看到某一處場景直接有感而發(fā)“臥槽、起立”,而知乎用戶更加理性的引經(jīng)據(jù)典從游戲性、畫面、音效等方面進行評價。其中也不外乎有一部分人,在彈幕發(fā)表即時感受,然后去知乎進行深入點評
不過總體就是一句:國游崛起、出必買
當然,最近該游戲制作人在微博指出它仍然有很多不足之處,但是對于旁觀者來說這可是給國游玩家一劑最猛的強心劑,被游戲耽誤的電影公司也不再是暴雪一家,剩下只需要給「游戲科學」足夠的時間
5.參考
早起Python | https://mp.weixin.qq.com/s/rQd2nwLktw9kccgQNpNmWw

如果還沒有加入百度網(wǎng)盤資料群的讀者可以微信搜索「data_ecology」,添加我的微信拉你進群,更多精彩,盡在我的朋友圈。
推薦閱讀
(點擊標題可跳轉閱讀)

