爬取b站音频和视频数据,未合成一个视频
一、首先找到含有音频和视频的url地址
打开一个视频,刷新后,找到这个包,里面有我们所需要的数据
访问这个数据包后,获取字符串数据,用正则提取,再转为json字符串方便提取。
二、获得标题和音频数据后,分别获取二进制数据,进行保存,注意这里访问时,必须加上防盗链即refer。
完整代码:
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_urldef save(title,audio_url,video_url):audio_content = get_response(url=audio_url).contentvideo_content = get_response(url=video_url).contentwith 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解析下载站)
访问弹幕链接即可获得:
相关文章:

爬取b站音频和视频数据,未合成一个视频
一、首先找到含有音频和视频的url地址 打开一个视频,刷新后,找到这个包,里面有我们所需要的数据 访问这个数据包后,获取字符串数据,用正则提取,再转为json字符串方便提取。 二、获得标题和音频数据后&…...

mysql进阶知识总结
1.存储引擎 1.1MySQL体系结构 1).连接层 最上层是一些客户端和链接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证…...

量化交易入门(二十五)什么是RSI,原理和炒股实操
前面我们了解了KDJ,MACD,MTM三个技术指标,也进行了回测,结果有好有坏,今天我们来学习第四个指标RSI。RSI指标全称是相对强弱指标(Relative Strength Index),是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市…...

快速上手Spring Cloud 九:服务间通信与消息队列
快速上手Spring Cloud 一:Spring Cloud 简介 快速上手Spring Cloud 二:核心组件解析 快速上手Spring Cloud 三:API网关深入探索与实战应用 快速上手Spring Cloud 四:微服务治理与安全 快速上手Spring Cloud 五:Spring …...
python——遍历网卡并禁用/启用
一、遍历网卡 注意:只能遍历到启用状态的网卡,如果网卡是禁止状态,则遍历不到!!! import os import time import psutil import loggingdef get_multi_physical_network_card():physical_nic_list []try:…...
初识 51
keil的使用: 具体细节请移步我上一篇博客:创建第一个51文件-CSDN博客 hex -- 汇编语言实现的文件 -- 直接与单片机对接的文件 单片机 -- 一个集成电脑芯片 单片机开发版 -- 基于单片机的集成电路 stc 89 c52RC / RD 系列单片机 命名规则: 89 -- 版本号? C --…...

【回溯与邻里交换】纸牌三角
1.回溯算法 旋转有3种可能,镜像有2种 所以最后次数:counts/3/2 #include<iostream> using namespace std;int num[9]; int counts0; bool bools[9];//默认为false int dfs(int step){if(step9){//索引 if((num[0]num[1]num[2]num[3]num[3]num[4]n…...

微服务(基础篇-004-Feign)
目录 http客户端Feign Feign替代RestTemplate(1) Feign的介绍(1.1) 使用Feign的步骤(1.2) 自定义配置(2) 配置Feign日志的两种方式(2.1) Feign使用优化…...

Linux IRC
目录 入侵框架检测 检测流程图 账号安全 查找账号中的危险信息 查看保存的历史命令 检测异常端口 入侵框架检测 1、系统安全检查(进程、开放端口、连接、日志) 这一块是目前个人该脚本所实现的功能 2、Rootkit 建议使用rootkit专杀工具来检查&#…...

五、Elasticsearch 集成
目录 5.1 Spring Data 框架集成5.1.1 Spring Data 框架介绍5.1.2 Spring Data Elasticsearch 介绍5.1.3 Spring Data Elasticsearch 版本对比5.1.4 集成步骤 5.1 Spring Data 框架集成 5.1.1 Spring Data 框架介绍 Spring Data 是一个用于简化数据库开发的开源框架。其主要目…...

Qt 完成图片的缩放拖动
1. 事件和函数 主要使用事件paintEvent(QPaintEvent *event)和drawTiledPixmap函数实现绘图。 paintEvent事件在改变窗口大小、移动窗口、手动调用update等情形下会被调用。需先了解下绘图该函数的用法。 - QPainter::drawTiledPixmap(int x, int y, int w, int h, const QPi…...
Linux 内核工具 iptables 配置TCP/UDP端口转发(命令参考)
1、配置TCP端口转发 把本机20000/TCP端口转发到7.7.7.7:20000 iptables -t nat -A PREROUTING -p tcp --dport 20000 -j DNAT --to-destination 7.7.7.7:20000 iptables -t nat -A POSTROUTING -j MASQUERADE 2、配置UDP端口转发 把本机20000/UDP端口转发到7.7.7.7:20000 i…...

love 2d Lua 俄罗斯方块超详细教程
源码已经更新在CSDN的码库里: git clone https://gitcode.com/funsion/love2d-game.git 一直在找Lua 能快速便捷实现图形界面的软件,找了一堆,终于发现love2d是小而美的原生lua图形界面实现的方式。 并参考相关教程做了一个更详细的&#x…...

SpringBoot+ElasticSearch实现文档内容抽取、高亮分词、全文检索
需求 产品希望我们这边能够实现用户上传PDF、WORD、TXT之内得文本内容,然后用户可以根据附件名称或文件内容模糊查询文件信息,并可以在线查看文件内容。 一、环境 项目开发环境: 后台管理系统springbootmybatis_plusmysqles 搜索引擎&#…...
利用Redis实现简单的短信登录
在现代应用中,短信登录是一种常见的用户认证方式。它提供了一种便捷的登录方式,同时也增加了账户的安全性。在本文中,我们将介绍如何使用 Redis 实现短信登录的功能,并提供相应的 Java 实现层代码。 1、短信验证码的生成与存储当用…...

在 Linux 中通过 SSH 执行远程命令时,无法自动加载环境变量(已解决)
问题场景 目前我的环境变量都存储在 /etc/profile 文件中,当我通过远程 SSH 执行一些命令时,提示命令找不到,如下所示: 问题出现原因 这里找到了一张出自尚硅谷的图片,很好的解释了该问题: 这是由于 Linu…...

c++使用类的一些注意事项
前言: 本篇内容为前面的补充,介绍了我们使用类时需要注意些什么以及一些编译器的优化,可能有些理解不到位或者错误,请斧正。 目录 前言: 1.再谈构造函数 2.(c98)隐式类型转换中的编译器的优…...
C++蓝桥考级一级到十八级的考点内容整理
以下是C蓝桥考级一级到十八级的考点内容整理: C一级考点内容 C程序基本结构 初步了解C编程了解C程序基本结构:头文件、命名空间、主函数、基本输入输出 cin、cout C二级考点内容 数据类型与变量 掌握编程中数学表达式的计算方式基础数据类型、变量的…...
C++智能指针简单剖析
导读 最近在补看《C Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shar…...
mysql笔记:25. docker环境中mysql主从复制、主主复制实操
文章目录 一、准备工作1. 安装配置Docker2. 准备MySQL相关的配置和数据目录 二、基于日志点的主从复制1. 配置Master服务器1.1 修改配置文件1.2. 在docker中启动Master节点1.3. 创建用户并授权 2. 配置Slave1服务器2.1. 修改配置2.2. 启动服务2.3. 指定Master2.4. 开始复制 3. …...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...