Python如何获取弹幕

作者:有用网 阅读量:209 发布时间:2023-10-29
关键字 python

这篇文章主要介绍了Python如何获取弹幕的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何获取弹幕文章都会有所收获,下面我们一起来看看吧。

环境

  • python 3.8

  • pycharm

  • requests

  • re

获取方式一: <简单, 但是弹幕很少>

先打开网站,找到你想要的视频,然后在网址bili前加个i,这样你就可以直接的找到弹幕的地址

复制地址打开,你就可以看到你想要的弹幕数据,写代码时直接请求这个地址就可以了

Python如何获取弹幕

请求数据

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如何获取弹幕

获取数据

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

Python如何获取弹幕

解析数据

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

Python如何获取弹幕

保存数据

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

Python如何获取弹幕

获取方式二: <复杂一点点, 弹幕比较多,按日期来>

先回到视频播放地址,打开开发者工具,选择其他日期天数,然后会出现带有当天日期的数据包,右边就是我们要找的url地址

Python如何获取弹幕

Python如何获取弹幕

也出现了乱码的弹幕数据

Python如何获取弹幕

请求数据

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)

解析数据

content_list = re.findall('[u4e00-u9fa5]+', response.text)
content = '
'.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}'

保存数据

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

Python如何获取弹幕


#发表评论
提交评论