怎樣用Python來分析b站彈幕,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
用Python分析b站彈幕
紙巾再濕也是干垃圾?瓜子皮再干也是濕垃圾??最近大家都被垃圾分類折磨的不行,傻傻的你是否拎得清?自2019.07.01開始,上海已率先實施垃圾分類制度,違反規定的還會面臨罰款。
為了避免巨額損失,我決定來b站學習下垃圾分類的技巧。為什么要來b站,聽說這可是當下年輕人最流行的學習途徑之一。
打開b站,搜索了下垃圾分類,上來就被這個標題嚇(吸)到(引)了:在上海丟人的正確姿勢。
當然,這里的丟人非彼丟人,指的是丟垃圾的丟。
點開發現,原來是一段對口相聲啊,還是兩個萌妹子(AI)的對口相聲,瞬間就來了興趣,闡述的是關于如何進行垃圾分類的。
看完一遍又一遍,簡直停不下來了,已經開啟了洗腦模式,畢竟視頻很好玩,視頻中的彈幕更是好玩!
獨樂樂不如眾樂樂,且不如用Python把彈幕保存下來,做個詞云圖?就這么愉快地決定了!
1 環境
操作系統:Windows
Python版本:3.7.3
2 需求分析
我們先需要通過<F12>開發調試工具,查詢這條視頻的彈幕的 cid 數據。
拿到 cid 之后,再填入下面的鏈接中。
http://comment.bilibili.com/{cid}.xml
打開之后,就可以看到該視頻的彈幕列表。
有了彈幕數據后,我們需要先將解析好,并保存在本地,方便進一步的加工處理,如制成詞云圖進行展示。
3 代碼實現
在這里,我們獲取網頁的請求使用 requests 模塊;解析網址借助 beautifulsoup4 模塊;保存為CSV數據,這里借用 pandas 模塊。因為都是第三方模塊,如環境中沒有可以使用 pip 進行安裝。
pip install requests pip install beautifulsoup4 pip install lxml pip install pandas
模塊安裝好之后,進行導入
import requests from bs4 import BeautifulSoup import pandas as pd
請求、解析、保存彈幕數據
# 請求彈幕數據 url = 'http://comment.bilibili.com/99768393.xml' html = requests.get(url).content # 解析彈幕數據 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} # 將彈幕數據保存在本地 br = pd.DataFrame(comments_dict) br.to_csv('barrage.csv', encoding='utf-8')
接下來,我們就對保存好的彈幕數據進行深加工。
制作詞云,我們需要用到 wordcloud 模塊、matplotlib 模塊、jieba 模塊,同樣都是第三方模塊,直接用 pip 進行安裝。
pip install wordcloud pip install matplotlib pip install jieba
模塊安裝好之后,進行導入,因為我們讀取文件用到了 panda 模塊,所以一并導入即可
from wordcloud import WordCloud, ImageColorGenerator import matplotlib.pyplot as plt import pandas as pd import jieba
我們可以自行選擇一張圖片,并基于此圖片來生成一張定制的詞云圖。我們可以自定義一些詞云樣式,代碼如下:
# 解析背景圖片 mask_img = plt.imread('Bulb.jpg') '''設置詞云樣式''' wc = WordCloud( # 設置字體 font_path='SIMYOU.TTF', # 允許最大詞匯量 max_words = 2000, # 設置最大號字體大小 max_font_size = 80, # 設置使用的背景圖片 mask = mask_img, # 設置輸出的圖片背景色 background_color=None, mode="RGBA", # 設置有多少種隨機生成狀態,即有多少種配色方案 random_state=30)
接下來,我們要讀取文本信息(彈幕數據),進行分詞并連接起來:
# 讀取文件內容 br = pd.read_csv('barrage.csv', header=None) # 進行分詞,并用空格連起來 text = '' for line in br[1]: text += ' '.join(jieba.cut(line, cut_all=False))
最后來看看我們效果圖
有沒有感受到大家對垃圾分類這個話題的熱情,莫名喜感涌上心頭。
4 后記
這兩個AI萌妹子說的相聲很不錯,就不知道郭德綱看到這個作品會作何感想?;氐嚼诸惖脑掝},目前《上海市生活垃圾管理條例》已正式施行,不在上海的朋友們也不要太開心,住建部表示,全國其它46個重點城市也即將體驗到……哈哈哈哈哈,有趣!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。