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

访问弹幕链接即可获得:

相关推荐
EasyCVR1 小时前
私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?
大数据·网络·音视频·h.265
天空中的野鸟1 小时前
Android音频采集
android·音视频
计算机毕设孵化场2 小时前
计算机毕设-基于springboot的高校网上缴费综合务系统视频的设计与实现(附源码+lw+ppt+开题报告)
java·spring boot·计算机外设·音视频·课程设计·高校网上缴费综合务系统视频·计算机毕设ppt
简鹿办公9 小时前
如何提取某站 MV 视频中的音乐为 MP3 音频
音视频·简鹿视频格式转换器·视频提取mp3音频
yufengxinpian9 小时前
集成了高性能ARM Cortex-M0+处理器的一款SimpleLink 2.4 GHz无线模块-RF-BM-2340B1
单片机·嵌入式硬件·音视频·智能硬件
runing_an_min11 小时前
ffmpeg视频滤镜:替换部分帧-freezeframes
ffmpeg·音视频·freezeframes
runing_an_min13 小时前
ffmpeg视频滤镜:提取缩略图-framestep
ffmpeg·音视频·framestep
小曲曲14 小时前
接口上传视频和oss直传视频到阿里云组件
javascript·阿里云·音视频
安静读书16 小时前
Python解析视频FPS(帧率)、分辨率信息
python·opencv·音视频
佑华硬盘拷贝机16 小时前
音频档案批量拷贝:专业SD拷贝机解决方案
音视频