爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!
時隔一年,嵩哥帶來他的新作《雨幕》。
他依舊認真創作,追求高品質,作品在發表之前已聽了五百遍以上。
如此高品質的音樂,大家如何評價呢?通過嗶哩嗶哩上的視頻彈幕,感受一下。
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")?#保存圖片
源碼地址:
后臺回復“雨幕”
推薦閱讀:(點擊標題即可跳轉)
??長按圖片 1 秒即可關注哦~
總結
以上是生活随笔為你收集整理的爬取许嵩新歌《雨幕》弹幕,告诉你什么才是真正的创作!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 官网宣布,正式发布 Pyt
- 下一篇: 推荐一位零基础转 Python 的大佬