Python實(shí)現(xiàn)獲取彈幕的兩種方式分享
前言
彈幕可以給觀(guān)眾一種“實(shí)時(shí)互動(dòng)”的錯(cuò)覺(jué),雖然不同彈幕的發(fā)送時(shí)間有所區(qū)別,但是其只會(huì)在視頻中特定的一個(gè)時(shí)間點(diǎn)出現(xiàn),因此在相同時(shí)刻發(fā)送的彈幕基本上也具有相同的主題,在參與評(píng)論時(shí)就會(huì)有與其他觀(guān)眾同時(shí)評(píng)論的錯(cuò)覺(jué)。
在國(guó)內(nèi)的視頻網(wǎng)站里,彈幕先是從A站被大家知道,隨后B站發(fā)揚(yáng)光大,導(dǎo)致現(xiàn)在全部視頻平臺(tái)和部分漫畫(huà)平臺(tái)都有彈幕功能,在欣賞動(dòng)漫的同時(shí),還能看一下大家的看法,也是一件非常有趣的事。
現(xiàn)在,彈幕文化成為了很多人看視頻的習(xí)慣,今天就教大家如何獲取彈幕的數(shù)據(jù)
環(huán)境
- python 3.8
- pycharm
- requests
- re
獲取方式一: <簡(jiǎn)單, 但是彈幕很少>
先打開(kāi)網(wǎng)站,找到你想要的視頻,然后在網(wǎng)址bili前加個(gè)i,這樣你就可以直接的找到彈幕的地址
復(fù)制地址打開(kāi),你就可以看到你想要的彈幕數(shù)據(jù),寫(xiě)代碼時(shí)直接請(qǐng)求這個(gè)地址就可以了

請(qǐng)求數(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), 彈幕比較多,按日期來(lái)>
先回到視頻播放地址,打開(kāi)開(kāi)發(fā)者工具,選擇其他日期天數(shù),然后會(huì)出現(xiàn)帶有當(dāng)天日期的數(shù)據(jù)包,右邊就是我們要找的url地址


也出現(xiàn)了亂碼的彈幕數(shù)據(jù)

請(qǐng)求數(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)
翻頁(yè)
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實(shí)現(xiàn)獲取彈幕的兩種方式分享的文章就介紹到這了,更多相關(guān)Python獲取彈幕內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
django做form表單的數(shù)據(jù)驗(yàn)證過(guò)程詳解
這篇文章主要介紹了django做form表單的數(shù)據(jù)驗(yàn)證過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
python隨機(jī)數(shù)分布random均勻分布實(shí)例
今天小編就為大家分享一篇python隨機(jī)數(shù)分布random均勻分布實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
為什么從Python 3.6開(kāi)始字典有序并效率更高
這篇文章主要給大家介紹了關(guān)于為什么從Python 3.6開(kāi)始字典有序并效率更高的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁(yè)過(guò)濾代理的教程
這篇文章主要介紹了在Python下使用Txt2Html實(shí)現(xiàn)網(wǎng)頁(yè)過(guò)濾代理的教程,來(lái)自IBM官方開(kāi)發(fā)者技術(shù)文檔,需要的朋友可以參考下2015-04-04

