bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!
時隔一年,嵩哥帶來他的新作《雨幕》。
他依舊認真創作,追求高品質,作品在發表之前已聽了五百遍以上。
如此高品質的音樂,大家如何評價呢?通過嗶哩嗶哩上的視頻彈幕,感受一下。01 實現思路
首先,利用嗶哩嗶哩的彈幕接口,把數據保存到本地。接著,對數據進行分詞。最后,做了評論的可視化。02 彈幕數據
平常我們在看視頻時,彈幕是出現在視頻上的。實際上在網頁中,彈幕是被隱藏在源代碼中,以XML的數據格式進行加載的。
比如:https://comment.bilibili.com/123072475.xml一個固定的url地址 + 視頻的cid + .xml
只要找到你想要的視頻cid,替換這個url就可以爬取所有彈幕了(b站大部分網頁給出的字幕限制是1000條)。一個視頻的cid在哪里呢?
右鍵網頁,打開網頁源代碼,搜索 "cid": 就能找到:
03 保存數據到本地
有了數據的接口鏈接,我們就可以利用request模塊,獲取數據了。
然后,再利用xpath簡單的解析xml,就可以把所有的彈幕信息匯總到一個列表里了。最后,把列表轉化成dataframe,保存到本地。# 許嵩新歌《雨幕》 # bilibili視頻彈幕文件 url = 'https://comment.bilibili.com/123072475.xml' # 發送請求 response = requests.get(url) xml = etree.fromstring(response.content) # 解析數據 dm = xml.xpath("/i/d/text()") print(dm) # list # 把列表轉換成 dataframe dm_df = pd.DataFrame(dm, columns=['彈幕內容']) print(dm_df) # 存到本地 # 解決了中文亂碼問題 dm_df.to_csv('雨幕-彈幕.csv', encoding='utf_8_sig')
保存的csv數據:
04 對數據進行分詞
制作詞云前,需要把彈幕數據進行分詞。
關于jieba分詞,可以參考:https://blog.csdn.net/dnxbjyj/article/details/72854460# jieba分詞 dm_str = " ".join(dm) words_list = jieba.lcut(dm_str) # 切分的是字符串,返回的是列表 words_str = " ".join(words_list)05 詞云可視化
通過創建詞云對象、設置詞云參數,最終生成圖片,保存到本地。# 讀取本地文件 backgroud_Image = plt.imread('1.jpg') # 創建詞云 wc = WordCloud( background_color='white', mask=backgroud_Image, font_path='./SourceHanSerifCN-Medium.otf', # 設置本地字體 max_words=2000, max_font_size=100, min_font_size=10, color_func=random_color_func, random_state=50, ) word_cloud = wc.generate(words_str) # 產生詞云 word_cloud.to_file("yumu.jpg") #保存圖片
總結
以上是生活随笔為你收集整理的bilibili 解析_用 Python 抓取 bilibili 弹幕并分析!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python与sap_Python结合S
- 下一篇: python decorator. de