Python實(shí)現(xiàn)獲取彈幕的兩種方式分享
前言
彈幕可以給觀眾一種“實(shí)時(shí)互動(dòng)”的錯(cuò)覺,雖然不同彈幕的發(fā)送時(shí)間有所區(qū)別,但是其只會(huì)在視頻中特定的一個(gè)時(shí)間點(diǎn)出現(xiàn),因此在相同時(shí)刻發(fā)送的彈幕基本上也具有相同的主題,在參與評(píng)論時(shí)就會(huì)有與其他觀眾同時(shí)評(píng)論的錯(cuò)覺。
在國(guó)內(nèi)的視頻網(wǎng)站里,彈幕先是從A站被大家知道,隨后B站發(fā)揚(yáng)光大,導(dǎo)致現(xiàn)在全部視頻平臺(tái)和部分漫畫平臺(tái)都有彈幕功能,在欣賞動(dòng)漫的同時(shí),還能看一下大家的看法,也是一件非常有趣的事。
現(xiàn)在,彈幕文化成為了很多人看視頻的習(xí)慣,今天就教大家如何獲取彈幕的數(shù)據(jù)
環(huán)境
- python 3.8
- pycharm
- requests
- re
獲取方式一: <簡(jiǎn)單, 但是彈幕很少>
先打開網(wǎng)站,找到你想要的視頻,然后在網(wǎng)址bili前加個(gè)i,這樣你就可以直接的找到彈幕的地址
復(fù)制地址打開,你就可以看到你想要的彈幕數(shù)據(jù),寫代碼時(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), 彈幕比較多,按日期來>
先回到視頻播放地址,打開開發(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)文章
Python使用fastapi快速編寫一個(gè)增刪改查的接口
這篇文章主要為大家詳細(xì)介紹了Python如何使用fastapi快速編寫一個(gè)增刪改查的接口,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04python查找指定文件夾下所有文件并按修改時(shí)間倒序排列的方法
今天小編就為大家分享一篇python查找指定文件夾下所有文件并按修改時(shí)間倒序排列的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10python多線程請(qǐng)求帶參數(shù)的多個(gè)接口問題
這篇文章主要介紹了python多線程請(qǐng)求帶參數(shù)的多個(gè)接口問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03擴(kuò)展Django admin的list_filter()可使用范圍方法
今天小編就為大家分享一篇擴(kuò)展Django admin的list_filter()可使用范圍方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08djano一對(duì)一、多對(duì)多、分頁(yè)實(shí)例代碼
在本篇文章里小編給大家整理的是關(guān)于djano一對(duì)一,多對(duì)多,分頁(yè)實(shí)例代碼以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。2019-08-08Django數(shù)據(jù)映射(一對(duì)一,一對(duì)多,多對(duì)多)
本文主要介紹了Django數(shù)據(jù)映射(一對(duì)一,一對(duì)多,多對(duì)多),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python實(shí)現(xiàn)對(duì)PPT文件進(jìn)行截圖操作的方法
這篇文章主要介紹了Python實(shí)現(xiàn)對(duì)PPT文件進(jìn)行截圖操作的方法,涉及Python操作幻燈片的相關(guān)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04