这篇文章主要介绍了Python如何获取弹幕的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何获取弹幕文章都会有所收获,下面我们一起来看看吧。
环境
python 3.8
pycharm
requests
re
获取方式一: <简单, 但是弹幕很少>
先打开网站,找到你想要的视频,然后在网址bili前加个i,这样你就可以直接的找到弹幕的地址
复制地址打开,你就可以看到你想要的弹幕数据,写代码时直接请求这个地址就可以了
请求数据
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)
获取数据
response.encoding = 'utf-8' print(response.text)
解析数据
content_list = re.findall('<d p=".*?">(.*?)</d>', response.text) content = ' '.join(content_list) print(content_list)
保存数据
with open('方式一.txt', mode='a', encoding='utf-8') as f: f.write(content)
获取方式二: <复杂一点点, 弹幕比较多,按日期来>
先回到视频播放地址,打开开发者工具,选择其他日期天数,然后会出现带有当天日期的数据包,右边就是我们要找的url地址
也出现了乱码的弹幕数据
请求数据
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)