Python實現(xiàn)獲取彈幕的兩種方式分享
前言
彈幕可以給觀眾一種“實時互動”的錯覺,雖然不同彈幕的發(fā)送時間有所區(qū)別,但是其只會在視頻中特定的一個時間點(diǎn)出現(xiàn),因此在相同時刻發(fā)送的彈幕基本上也具有相同的主題,在參與評論時就會有與其他觀眾同時評論的錯覺。
在國內(nèi)的視頻網(wǎng)站里,彈幕先是從A站被大家知道,隨后B站發(fā)揚(yáng)光大,導(dǎo)致現(xiàn)在全部視頻平臺和部分漫畫平臺都有彈幕功能,在欣賞動漫的同時,還能看一下大家的看法,也是一件非常有趣的事。
現(xiàn)在,彈幕文化成為了很多人看視頻的習(xí)慣,今天就教大家如何獲取彈幕的數(shù)據(jù)
環(huán)境
- python 3.8
- pycharm
- requests
- re
獲取方式一: <簡單, 但是彈幕很少>
先打開網(wǎng)站,找到你想要的視頻,然后在網(wǎng)址bili前加個i,這樣你就可以直接的找到彈幕的地址
復(fù)制地址打開,你就可以看到你想要的彈幕數(shù)據(jù),寫代碼時直接請求這個地址就可以了
請求數(shù)據(jù)
url = 'https://api.bilibili.com/x/v1/dm/list.so?oid=967256583' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36' } response = requests.get(url=url, headers=headers) print(response)
獲取數(shù)據(jù)
response.encoding = 'utf-8' print(response.text)
解析數(shù)據(jù)
content_list = re.findall('<d p=".*?">(.*?)</d>', response.text) content = '\n'.join(content_list) print(content_list)
保存數(shù)據(jù)
with open('方式一.txt', mode='a', encoding='utf-8') as f: f.write(content)
獲取方式二: <復(fù)雜一點(diǎn)點(diǎn), 彈幕比較多,按日期來>
先回到視頻播放地址,打開開發(fā)者工具,選擇其他日期天數(shù),然后會出現(xiàn)帶有當(dāng)天日期的數(shù)據(jù)包,右邊就是我們要找的url地址
也出現(xiàn)了亂碼的彈幕數(shù)據(jù)
請求數(shù)據(jù)
url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=967256583&date=2023-02-23' headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36', 'cookie': '加自己的' } response = requests.get(url=url, headers=headers)
解析數(shù)據(jù)
content_list = re.findall('[\u4e00-\u9fa5]+', response.text) content = '\n'.join(content_list)
翻頁
for page in range(1, 24): url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid=967256583&date=2023-02-{page}'
保存數(shù)據(jù)
with open('方式二.txt', mode='a', encoding='utf-8') as f: f.write(content) print(content_list)
到此這篇關(guān)于Python實現(xiàn)獲取彈幕的兩種方式分享的文章就介紹到這了,更多相關(guān)Python獲取彈幕內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python查找指定文件夾下所有文件并按修改時間倒序排列的方法
今天小編就為大家分享一篇python查找指定文件夾下所有文件并按修改時間倒序排列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10擴(kuò)展Django admin的list_filter()可使用范圍方法
今天小編就為大家分享一篇擴(kuò)展Django admin的list_filter()可使用范圍方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Django數(shù)據(jù)映射(一對一,一對多,多對多)
本文主要介紹了Django數(shù)據(jù)映射(一對一,一對多,多對多),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python實現(xiàn)對PPT文件進(jìn)行截圖操作的方法
這篇文章主要介紹了Python實現(xiàn)對PPT文件進(jìn)行截圖操作的方法,涉及Python操作幻燈片的相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04