爬取b站音频和视频数据,未合成一个视频

一、首先找到含有音频和视频的url地址

打开一个视频,刷新后,找到这个包,里面有我们所需要的数据

访问这个数据包后,获取字符串数据,用正则提取,再转为json字符串方便提取。

二、获得标题和音频数据后,分别获取二进制数据,进行保存,注意这里访问时,必须加上防盗链即refer。

完整代码:

python 复制代码
import requests
import json
import re
import pprint
def get_response(url):
    headers ={
        "Referer":"https://space.bilibili.com/480670664",
        "Cookie":"buvid3=147D8190-C7BD-7BA9-1991-11F625BFAD0F63250infoc; b_nut=1704603163; i-wanna-go-back=-1; b_ut=7; _uuid=24B48ADE-5F45-F1BA-8F101-92E6EA3C5E9562728infoc; enable_web_push=DISABLE; buvid4=54DF23A6-E7BA-5931-0E4C-64707AFE8C9F64640-024010704-8qrN5r0k2p518FoBUY6DBs00hx1F24CGrUVZ2ENL3N3IDPtdKOB3sdEUTsoRlc77; LIVE_BUVID=AUTO7417046031702675; buvid_fp_plain=undefined; header_theme_version=CLOSE; is-2022-channel=1; CURRENT_BLACKGAP=0; rpdid=0zbfVHa4e0|Cpjx3t0|fIj8|3w1RshGT; DedeUserID=151028355; DedeUserID__ckMd5=c9e195efef0967b0; fingerprint=a0cfdd0d76b3941516e3c9cfbdb4cde2; buvid_fp=a0cfdd0d76b3941516e3c9cfbdb4cde2; CURRENT_FNVAL=4048; CURRENT_QUALITY=80; hit-dyn-v2=1; home_feed_column=4; bp_video_offset_151028355=910186544512368662; b_lsid=DF21B14C_18E89FDCDDC; bmg_af_switch=1; bmg_src_def_domain=i0.hdslb.com; FEED_LIVE_VERSION=V_HEADER_LIVE_NO_POP; browser_resolution=1382-742; SESSDATA=3453694a%2C1727264098%2C76879%2A32CjATHAdI0T0tgl7P0OCtAji8X9-btkgYMjqQGtt0B5NBVhXBvhYdTL9LfXB0kiUzKLISVllyS3g5c3R0N2V0VHYxRmU5bXlud0pEdWhZeUs0WVlkdGZIWElKVjBjaTJ4b0lDbWR5NWtYaWJvSWxkN2RwVkxuWFZvX2kyZ2RNeGt0Ynd4enFmcU5BIIEC; bili_jct=1a488c1a0c065e7c52748a3b9effd54c; sid=4hv352dx; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTE5NzEzMTEsImlhdCI6MTcxMTcxMjA1MSwicGx0IjotMX0.-sNIdSjptHmJN4OuPUIZicxtSyFKEtBTH78qR5Yn2Pg; bili_ticket_expires=1711971251; PVID=1",
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
    }
    response = requests.get(url=url,headers=headers)
    return response
def GetVideoInfo():
    # 视频播放页的链接地址
    link ='https://www.bilibili.com/video/BV1GJ411v7a3/?spm_id_from=333.999.0.0&vd_source=ae60a9753538f205a553937d75ee728d'
    # 调用发送请求的函数
    response = get_response(link)
    # 获取响应的文本数据
    html = response.text
    # 提取数据内容 使用正则表达式
    # 音视频信息得到
    info = re.findall('<script>window.__playinfo__=(.*?)</script>',html)[0]
    # 把json字符串转为json字典
    json_data = json.loads(info)
    # 音频链接
    audio_url = json_data['data']['dash']['audio'][0]['baseUrl']
    # 视频链接
    video_url = json_data['data']['dash']['video'][0]['baseUrl']
    title = re.findall('<h1 data-title="(.*?)" title="(.*?)" class="video-title',html)[0][0]
    print(title)
    print(audio_url)
    print(video_url)
    # 获取视频标题
    return title,audio_url,video_url

def save(title,audio_url,video_url):
    audio_content = get_response(url=audio_url).content
    video_content = get_response(url=video_url).content
    with open('videobilibili\\'+title+'.mp3',mode='wb') as audio:
        audio.write(audio_content)
    with open('videobilibili\\'+title+'.mp4',mode='wb') as video:
        video.write(video_content)
    '''把音频和视频合成一个'''

if __name__ == '__main__':
    title,audio_url,video_url = GetVideoInfo()
        save(title,audio_url,video_url)

三、别人提供的b站视频详情页

在链接的bilibili前加个i,获得视频详情,包括评论信息

原链接:去大理骑单车环洱海,130公里2天半独行之旅_哔哩哔哩_bilibili

改链接:去大理骑单车环洱海,130公里2天半独行之旅-去大理骑单车环洱海,130公里2天半独行之旅-爱哔哩(B站视频、音频mp3解析下载站)

访问弹幕链接即可获得:

相关推荐
AI巨人1 天前
“PR插件:轻松减少50%素材寻找时间,内置丰富素材,提升视频制作效率
人工智能·音视频·语音识别
Likeadust1 天前
视频推流平台EasyDSS无人机推流直播技术赋能城市可视化管理
音视频·无人机
AI生成未来1 天前
港科大等提出音频驱动多人视频生成新范式 AnyTalker,解锁任意数量角色间的自然互动!
aigc·音视频·视频生成·音频驱动视频
EasyDSS1 天前
全场景视频推流利器:视频推流平台EasyDSS技术解析与行业落地实践
音视频
XHW___0011 天前
音频调试时录制pcm数据
音视频·pcm
♛小小小让让1 天前
FourCC、编解码器、 文件后缀、视频容器的关系
笔记·音视频
智联视频超融合平台1 天前
智能互联新时代:视频联网平台与物联网的完美融合
人工智能·物联网·网络协议·系统安全·音视频
小c君tt1 天前
ffmpeg-音-视频-基本概念
ffmpeg·音视频
Hello World,1 天前
使用ffmpeg播放视频并添加当前时间水印
ffmpeg·音视频
EasyCVR1 天前
视频融合平台EasyCVR赋能电梯监控智能化监管新格局
音视频