溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何獲取彈幕

發(fā)布時(shí)間:2023-03-07 09:59:34 來源:億速云 閱讀:79 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Python如何獲取彈幕的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Python如何獲取彈幕文章都會(huì)有所收獲,下面我們一起來看看吧。

環(huán)境

  • python 3.8

  • pycharm

  • requests

  • re

獲取方式一: <簡(jiǎn)單, 但是彈幕很少>

先打開網(wǎng)站,找到你想要的視頻,然后在網(wǎng)址bili前加個(gè)i,這樣你就可以直接的找到彈幕的地址

復(fù)制地址打開,你就可以看到你想要的彈幕數(shù)據(jù),寫代碼時(shí)直接請(qǐng)求這個(gè)地址就可以了

Python如何獲取彈幕

請(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)

Python如何獲取彈幕

獲取數(shù)據(jù)

response.encoding = 'utf-8'
print(response.text)

Python如何獲取彈幕

解析數(shù)據(jù)

content_list = re.findall('<d p=".*?">(.*?)</d>', response.text)
content = '\n'.join(content_list)
print(content_list)

Python如何獲取彈幕

保存數(shù)據(jù)

with open('方式一.txt', mode='a', encoding='utf-8') as f:
    f.write(content)

Python如何獲取彈幕

獲取方式二: <復(fù)雜一點(diǎn)點(diǎn), 彈幕比較多,按日期來>

先回到視頻播放地址,打開開發(fā)者工具,選擇其他日期天數(shù),然后會(huì)出現(xiàn)帶有當(dāng)天日期的數(shù)據(jù)包,右邊就是我們要找的url地址

Python如何獲取彈幕

Python如何獲取彈幕

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

Python如何獲取彈幕

請(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)

翻頁

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)

Python如何獲取彈幕

關(guān)于“Python如何獲取彈幕”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Python如何獲取彈幕”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI