溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎樣用Python來(lái)分析b站彈幕

發(fā)布時(shí)間:2021-10-28 18:25:13 來(lái)源:億速云 閱讀:256 作者:柒染 欄目:編程語(yǔ)言

怎樣用Python來(lái)分析b站彈幕,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

用Python分析b站彈幕

紙巾再濕也是干垃圾?瓜子皮再干也是濕垃圾??最近大家都被垃圾分類折磨的不行,傻傻的你是否拎得清?自2019.07.01開(kāi)始,上海已率先實(shí)施垃圾分類制度,違反規(guī)定的還會(huì)面臨罰款。

為了避免巨額損失,我決定來(lái)b站學(xué)習(xí)下垃圾分類的技巧。為什么要來(lái)b站,聽(tīng)說(shuō)這可是當(dāng)下年輕人最流行的學(xué)習(xí)途徑之一。

打開(kāi)b站,搜索了下垃圾分類,上來(lái)就被這個(gè)標(biāo)題嚇(吸)到(引)了:在上海丟人的正確姿勢(shì)。

怎樣用Python來(lái)分析b站彈幕

當(dāng)然,這里的丟人非彼丟人,指的是丟垃圾的丟。

點(diǎn)開(kāi)發(fā)現(xiàn),原來(lái)是一段對(duì)口相聲啊,還是兩個(gè)萌妹子(AI)的對(duì)口相聲,瞬間就來(lái)了興趣,闡述的是關(guān)于如何進(jìn)行垃圾分類的。

怎樣用Python來(lái)分析b站彈幕

怎樣用Python來(lái)分析b站彈幕

怎樣用Python來(lái)分析b站彈幕

看完一遍又一遍,簡(jiǎn)直停不下來(lái)了,已經(jīng)開(kāi)啟了洗腦模式,畢竟視頻很好玩,視頻中的彈幕更是好玩!

獨(dú)樂(lè)樂(lè)不如眾樂(lè)樂(lè),且不如用Python把彈幕保存下來(lái),做個(gè)詞云圖?就這么愉快地決定了!

1 環(huán)境

操作系統(tǒng):Windows

Python版本:3.7.3

2 需求分析

我們先需要通過(guò)<F12>開(kāi)發(fā)調(diào)試工具,查詢這條視頻的彈幕的 cid 數(shù)據(jù)。

怎樣用Python來(lái)分析b站彈幕

拿到 cid 之后,再填入下面的鏈接中。

http://comment.bilibili.com/{cid}.xml

打開(kāi)之后,就可以看到該視頻的彈幕列表。

怎樣用Python來(lái)分析b站彈幕

有了彈幕數(shù)據(jù)后,我們需要先將解析好,并保存在本地,方便進(jìn)一步的加工處理,如制成詞云圖進(jìn)行展示。

3 代碼實(shí)現(xiàn)

在這里,我們獲取網(wǎng)頁(yè)的請(qǐng)求使用 requests 模塊;解析網(wǎng)址借助 beautifulsoup4 模塊;保存為CSV數(shù)據(jù),這里借用 pandas 模塊。因?yàn)槎际堑谌侥K,如環(huán)境中沒(méi)有可以使用 pip 進(jìn)行安裝。

pip install requests
pip install beautifulsoup4
pip install lxml
pip install pandas

模塊安裝好之后,進(jìn)行導(dǎo)入

import requests
from bs4 import BeautifulSoup
import pandas as pd

請(qǐng)求、解析、保存彈幕數(shù)據(jù)

# 請(qǐng)求彈幕數(shù)據(jù)
url = 'http://comment.bilibili.com/99768393.xml'
html = requests.get(url).content
# 解析彈幕數(shù)據(jù)
html_data = str(html, 'utf-8')
bs4 = BeautifulSoup(html_data, 'lxml')
results = bs4.find_all('d')
comments = [comment.text for comment in results]
comments_dict = {'comments': comments}
# 將彈幕數(shù)據(jù)保存在本地
br = pd.DataFrame(comments_dict)
br.to_csv('barrage.csv', encoding='utf-8')

接下來(lái),我們就對(duì)保存好的彈幕數(shù)據(jù)進(jìn)行深加工。

制作詞云,我們需要用到 wordcloud 模塊、matplotlib 模塊、jieba 模塊,同樣都是第三方模塊,直接用 pip 進(jìn)行安裝。

pip install wordcloud
pip install matplotlib
pip install jieba

模塊安裝好之后,進(jìn)行導(dǎo)入,因?yàn)槲覀冏x取文件用到了 panda 模塊,所以一并導(dǎo)入即可

from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import pandas as pd
import jieba

我們可以自行選擇一張圖片,并基于此圖片來(lái)生成一張定制的詞云圖。我們可以自定義一些詞云樣式,代碼如下:

# 解析背景圖片
mask_img = plt.imread('Bulb.jpg')
'''設(shè)置詞云樣式'''
wc = WordCloud(
 # 設(shè)置字體 
 font_path='SIMYOU.TTF',
 # 允許最大詞匯量
 max_words = 2000,
 # 設(shè)置最大號(hào)字體大小
 max_font_size = 80,
 # 設(shè)置使用的背景圖片
 mask = mask_img,
 # 設(shè)置輸出的圖片背景色
 background_color=None, mode="RGBA",
 # 設(shè)置有多少種隨機(jī)生成狀態(tài),即有多少種配色方案
 random_state=30)

接下來(lái),我們要讀取文本信息(彈幕數(shù)據(jù)),進(jìn)行分詞并連接起來(lái):

# 讀取文件內(nèi)容
br = pd.read_csv('barrage.csv', header=None)
# 進(jìn)行分詞,并用空格連起來(lái)
text = ''
for line in br[1]:
 text += ' '.join(jieba.cut(line, cut_all=False))

最后來(lái)看看我們效果圖

怎樣用Python來(lái)分析b站彈幕

有沒(méi)有感受到大家對(duì)垃圾分類這個(gè)話題的熱情,莫名喜感涌上心頭。

4 后記

這兩個(gè)AI萌妹子說(shuō)的相聲很不錯(cuò),就不知道郭德綱看到這個(gè)作品會(huì)作何感想?;氐嚼诸惖脑掝},目前《上海市生活垃圾管理?xiàng)l例》已正式施行,不在上海的朋友們也不要太開(kāi)心,住建部表示,全國(guó)其它46個(gè)重點(diǎn)城市也即將體驗(yàn)到……哈哈哈哈哈,有趣!

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI