【Python爬虫】B站视频爬取

第一步:爬取视频音频文件

打开一个b站的想爬取的视频,鼠标右键点击检查,点击网络

筛选器输入m4s

b站的视频分为视频文件(无声音)和音频文件两个文件,所以要两个一起爬取

找到两个不一样的请求,获取请求url

请求标头中获取'User-Agent'和'Referer'

使用requests获取内容写入文件

代码如下:

import requests

# 两个请求url,一个获取视频,一个获取音频
url1='https://xy42x101x55x132xy240ey908y8011yy4xy.mcdn.bilivideo.cn:4483/upgcxcode/46/19/28204531946/28204531946-1-100024.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1739786946&gen=playurlv2&os=mcdn&oi=0&trid=00005a22bd63c14a4e96ac171ef0496fdb8au&mid=350291361&platform=pc&og=cos&upsig=6a4d5d5de43e4d11c689e17bba7638f6&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&mcdnid=50018151&bvc=vod&nettype=0&orderid=0,3&buvid=F370FCFA-4EAE-017C-BFF8-FA6AA9F42B7741578infoc&build=0&f=u_0_0&agrr=1&bw=25149&logo=A0020000'
url2='https://xy42x101x55x132xy240ey908y8011yy4xy.mcdn.bilivideo.cn:4483/upgcxcode/46/19/28204531946/28204531946-1-30232.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1739786946&gen=playurlv2&os=mcdn&oi=0&trid=00005a22bd63c14a4e96ac171ef0496fdb8au&mid=350291361&platform=pc&og=hw&upsig=ec882fc3c905af67e85431228ca9b12e&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&mcdnid=50018151&bvc=vod&nettype=0&orderid=0,3&buvid=F370FCFA-4EAE-017C-BFF8-FA6AA9F42B7741578infoc&build=0&f=u_0_0&agrr=1&bw=9924&logo=A0020000'

# 请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0',
    'Referer': 'https://www.bilibili.com/video/BV16M4m1X7Hw/?spm_id_from=333.1391.0.0&vd_source=4ebd370ab101aa9571482bdf77ad7a4a'
}

#获取repsonse对象
re1 = requests.get(url1, headers=headers)
re2 = requests.get(url2, headers=headers)

# 将响应内容写入mp4文件
with open('sp1.mp4', 'wb') as f:
    f.write(re1.content)

with open('sp2.mp4', 'wb') as f:
    f.write(re2.content)

第二步:合成视频

接下来需要将获取到的视频文件和音频文件合成一个有音频的视频文件

from moviepy.video.io import ffmpeg_tools

ffmpeg_tools.ffmpeg_merge_video_audio('sp1.mp4','sp2.mp4','b站合成视频.mp4')

这样就完成啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值