#1. 随便在b站找个测试视频的地址,然后把网址在bilibili前面加一个 i 访问后,就可以看到跳转后的弹幕地址了,https://www.ibilibili.com/…,如下所示,你也可以通过下方,我分享的源码中get_danmu_url(url):我写的函数(传一个参数视频地址即可),来得到转化后的弹幕地址,这样就不用手动查看转化了。
#我的Python教程
#官方微信公众号:wdPython

2.刘亦菲弹幕获取好的效果(弹幕很多,下面发的是部分)
那是因为是你
看多少次都会笑死的地步
“现在放下了”,后续老刘买了一件古驰外套送给导演了
刘亦菲,LV路易威登和宝格丽双顶奢全球代言人,无所谓大家的恨
我觉得她是intp有种冷幽默感
就喜欢黑宝宝们上蹿下跳发疯的样子
这里刘涛特别照顾刘亦菲
耿直girl
有时候回答记者问题就是要绕弯子 有技巧的
别围棋少女了,粉圈有几个看过的?只会跟风黑
突然发现她说话语气和风格和孙一宁好像
人家不是笨蛋是大智若愚

import requests
import re
import parsel
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
#测试视频网址 https://www.bilibili.com/video/BV1Ts4y1p7Vc/?spm_id_from=333.337.search-card.all.click
def get_middletext(content,start_content,end_content):
'''
知道前面和后面的文本,取出中间的文本
例如我的Python教程,我的和教程的中间文本就是Python
'''
start_index = content.index(start_content) + len(start_content)
end_index = content.index(end_content)
middle_text = content[start_index : end_index]
return middle_text
#1.通过原网址,找到弹幕视频的网址
def get_danmu_url(url):
url='https://www.bilibili.com/video/BV1Ts4y1p7Vc/?spm_id_from=333.337.search-card.all.click'
new_url = url.replace("//www.", "//www.i")
web_data = requests.get(new_url, headers=headers).text
selector = parsel.Selector(web_data)
danmu_url=selector.xpath('.//div[@class="input-group"][5]/input').get()
danmu_url=get_middletext(danmu_url, 'value="', '" class', ).strip()
print('解析后的弹幕地址:',danmu_url)
return danmu_url
if __name__ == '__main__':
#这是一个测试的B站视频地址
video_url = get_danmu_url('https://www.bilibili.com/video/BV1Ts4y1p7Vc/?spm_id_from=333.337.search-card.all.click')
response = requests.get(url=video_url,headers=headers)
response.encoding = 'UTF-8'
#print(response.text)
#p="290.78000,1,25,16777215,1692205108,0,689b568b,1385075854249679616,10">刘亦菲情商好高啊
danmu_lists = re.findall('p=".*?">(.*?) ,response.text)
danmu_content = '\n'.join(danmu_lists)
print(danmu_content)