爬取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解析下载站)

访问弹幕链接即可获得:

相关推荐
码上观世界20 小时前
一张图 + 一段音频,生成口型同步、有表情的数字人
音视频
鲲穹AI种草1 天前
自媒体矩阵批量剪辑怎么选?鲲剪短视频批量处理工具横向评测
人工智能·音视频·媒体
可乐鸡翅yeah_1 天前
网页端 M3U8 播放器性能监控,怎么看播放卡顿指标
javascript·ffmpeg·音视频·safari·m3u8
可乐鸡翅yeah_1 天前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
昨日之日20061 天前
yovoice:本地配音工具箱,支持音色克隆与情绪控制,专为旁白、有声书和视频配音打造
人工智能·音视频
狗凯之家源码网1 天前
2026 版短视频与视频号去水印源码深度评测
音视频
深圳市青牛科技实业有限公司1 天前
GC1843|24bit 立体声差分输入 ADC,超小封装音频采集芯片
音视频
W_chuanqi1 天前
使用EV录屏视频噪声很大
音视频·ev录屏
开开心心就好1 天前
超市定时播音软件,免费版支持循环播放
智能手机·ffmpeg·ocr·word·vim·音视频·visual studio
linux_cfan1 天前
videojs v10 源代码系列解读:35 · HLS 解析器:multivariant 与 media playlist
前端·javascript·音视频