哔哩哔哩负面搜索词顶掉【哔站业务-欢迎光临-请进】哔哩哔哩视频排名提升如何获取 B 站视频的音视频文件?

佚名
2024-07-12
来源:网络整理

微信截图_20240712002158.jpg


我们是北京华网天下科技有限公司,为您提供其中一项业务为:哔哩哔哩视频排名优化提升,和哔哩哔哩下拉词优化。


哔哩哔哩短视频排名优化,就是您发布的视频,在哔哩哔哩有排名,只要有排名,都可以进行优化到前3名。下拉词就是通过哔哩哔哩搜索时,能够让用户看到您的品牌名或者联系方式,也就是行业的热点搜索词,提升曝光度。您可以进入我们的公司官网或者联系商户经理微信ysfsyt1

哔哩哔哩负面搜索词顶掉【哔站业务-欢迎光临-请进】哔哩哔哩视频排名提升如何获取 B 站视频的音视频文件?

1.进入需要下载的视频页面,按F12查看

Google Chrome 的快捷键是 F12。其他浏览器可以右键点击来检查或查看元素。

在 Network 下选择 xhr

2.观察浏览器向服务器发送的请求

我们观看的视频需要先从服务器请求,然后缓存到本地才能观看,所以我们可以从B站获取视频

Bilibili的视频格式主要是.m4s,音频和视频分别被分离到.m4s中,所以我们需要观察以.m4s为后缀的请求,观察到是两个名字发出的多个请求后,我们也能判断出其中一个是音频文件,另一个是视频文件。

3.获取音频和视频文件

方法一:直接点击请求,复制右侧的请求URL信息,复制到浏览器地址栏进行请求,即可自动下载。但是这种方法对于部分视频是成功的,但部分视频出现403错误,这种情况需要使用方法二。

B站_站b站_B站

方法二:使用 Python 设置请求头来请求文件。为什么会出现 403 错误呢?因为 Bilibili 服务器在收到请求后会对请求头中的信息进行一些验证(比如高级会员)。所以解决办法也很简单,加上就​​可以了。

首先查看正常查看时请求是什么样子的。按照方法1中的方法,找到请求URL下的Request Headers。

找到这些信息后,我们需要编写我们的python代码

首先定义两个变量,分别记录Request URL和Request Headers,Request URL可以为字符串,Request Headers则根据你浏览器中Request Headers的参数填写。


headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36', 'Accept': '*/*', 'Accept-Encoding': 'identity', 'Accept-Language': 'zh-CN,zh;q=0.9', 'Connection': '', 'Host': '', 'If-Range': '', 'Origin': 'https://www.bilibili.com', 'Range': 'bytes=146320647-146769238', 'Referer': '', 'Sec-Fetch-Dest': '', 'Sec-Fetch-Mode': '', 'Sec-Fetch-Site': '' } requestUrl = "Request URL" # 发送请求(时间会稍长) resp = requests.get(requestUrl, headers=headers) headers = resp.headers # 数据保存 print(resp) fo = open("video.m4s", "wb") fo.write(resp.content) fo.close() print("结束")

4.处理.m4s文件

我使用了 Format Factory 并将其转换为 MP4 格式(将有两个 MP4 文件,音频和视频),最后使用 pr 将两个 MP4 文件合并为一个视频

可能出现的问题

返回206状态,删除'Range': 'bytes=3274663-3531425',重新发起请求,在格式工厂里找到.m4s文件,在最下面选择所有文件。

获取B站视频相对比较容易,但是如果想要大量下载的话,这个方法还有待改进。

分享