You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.3 KiB

import requests
import re
def get_response(html_url):
headers = {
'cookie': '你自己的 cookie',
'origin': 'https://www.bilibili.com',
'eferer': '视频的具体链接',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
}
response = requests.get(url=html_url, headers=headers)
return response
def get_danmaku(video_id):
# 获取弹幕日期列表
date_url = f'https://api.bilibili.com/x/v2/dm/history/index?type=1&oid={video_id}&month=2024-09' # 这里假设是 2024 年 9 月的弹幕,你可以根据实际情况修改
date_response = get_response(date_url)
json_data = date_response.json()
date_list = json_data['data']
danmaku_list = []
for date in date_list:
danmaku_url = f'https://api.bilibili.com/x/v2/dm/web/history/seg.so?type=1&oid={video_id}&date={date}'
html_data = get_response(danmaku_url).text
# 使用正则表达式匹配中文字符获取弹幕内容
result = re.findall(".?((\u4e00-\u9fa5)+).?", html_data)
for i in result:
danmaku_list.append(i[0])
return danmaku_list