Python實現(xiàn)獲取彈幕的兩種方式分享
前言
彈幕可以給觀眾一種“實時互動”的錯覺,雖然不同彈幕的發(fā)送時間有所區(qū)別,但是其只會在視頻中特定的一個時間點出現(xiàn),因此在相同時刻發(fā)送的彈幕基本上也具有相同的主題,在參與評論時就會有與其他觀眾同時評論的錯覺。
在國內(nèi)的視頻網(wǎng)站里,彈幕先是從A站被大家知道,隨后B站發(fā)揚光大,導(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ù)雜一點點, 彈幕比較多,按日期來>
先回到視頻播放地址,打開開發(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)文章
django做form表單的數(shù)據(jù)驗證過程詳解
這篇文章主要介紹了django做form表單的數(shù)據(jù)驗證過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
在Python下使用Txt2Html實現(xiàn)網(wǎng)頁過濾代理的教程
這篇文章主要介紹了在Python下使用Txt2Html實現(xiàn)網(wǎng)頁過濾代理的教程,來自IBM官方開發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04

