爬虫案例-爬取某站视频

文章目录

  • 1、下载FFmpeg
  • 2、爬取代码
  • 3、效果图

1、下载FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

点击下载: ffmpeg

在这里插入图片描述

安装并配置 FFmpeg
步骤:
1.下载 FFmpeg:
2.访问 FFmpeg 官网。
3.选择 Windows 版本(如 Windows Builds)。
4.下载 ffmpeg-master-latest-win64-gpl.zip。
5.解压文件:
6.将 ZIP 文件解压到 C:\Program Files\ffmpeg。
7.配置环境变量:
8.右键点击“此电脑” > “属性” > “高级系统设置” > “环境变量”。
9.在“系统变量”中找到 Path,点击“编辑”。
10.添加 FFmpeg 的 bin 目录路径:C:\Program Files\ffmpeg\bin。
11.保存并退出。

2、爬取代码

import requests
import os
from urllib.parse import urlparse
import subprocess# 视频和音频URL
video_url = "https://upos-sz-mirrorbd.bilivideo.com/upgcxcode/46/89/28747958946/28747958946-1-100022.m4s"
audio_url = "https://cn-gdgz-gd-live-02.bilivideo.com/upgcxcode/46/89/28747958946/28747958946-1-30216.m4s"# 请求头
header = {"Referer": "https://www.bilibili.com/video/av576765795?spm_id_from=333.788.player.player_end_recommend_autoplay","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 Edg/134.0.0.0"
}# 视频请求参数
video_params = {"e": "ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=","uipk": "5","nbs": "1","deadline": "1742734058","gen": "playurlv2","os": "bdbv","oi": "1996673551","trid": "236892f04e4743a7a3da62f279953324u","mid": "0","platform": "pc","og": "hw","upsig": "d8a8f509632b390e62c65ba33d7b8342","uparams": "e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og","bvc": "vod","nettype": "0","orderid": "0,3","buvid": "362FA75D-BD0F-DC0D-E2AE-34526182765756167infoc","build": "0","f": "u_0_0","agrr": "1","bw": "18402","logo": "80000000"
}# 音频请求参数
audio_params = {"e": "ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=","uipk": "5","nbs": "1","deadline": "1742734058","gen": "playurlv2","os": "bcache","oi": "1996673551","trid": "0000236892f04e4743a7a3da62f279953324u","mid": "0","platform": "pc","og": "hw","upsig": "e0007fe3f8ffbf93d9c37a85134bda3c","uparams": "e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og","cdnid": "6697","bvc": "vod","nettype": "0","orderid": "0,3","buvid": "362FA75D-BD0F-DC0D-E2AE-34526182765756167infoc","build": "0","f": "u_0_0","agrr": "1","bw": "6238","logo": "80000000"
}
# 发送请求并下载视频
video_response = requests.get(video_url, headers=header, params=video_params, timeout=10)
video_response.raise_for_status()
# 发送请求并下载音频
audio_response = requests.get(audio_url, headers=header, params=audio_params, timeout=10)
audio_response.raise_for_status()# 创建输出目录
output_folder = r"C:/Users/zzx/Desktop/video/"
if not os.path.exists(output_folder):os.makedirs(output_folder)# 保存视频文件
video_filename = os.path.basename(urlparse(video_url).path)
video_file_path = os.path.join(output_folder, video_filename)
with open(video_file_path, "wb") as f:for chunk in video_response.iter_content(chunk_size=1024*1024):if chunk:f.write(chunk)
print(f"视频文件已下载:{video_file_path}")# 保存音频文件
audio_filename = os.path.basename(urlparse(audio_url).path)
audio_file_path = os.path.join(output_folder, audio_filename)
with open(audio_file_path, "wb") as f:for chunk in audio_response.iter_content(chunk_size=1024*1024):if chunk:f.write(chunk)
print(f"音频文件已下载:{audio_file_path}")# 使用 FFmpeg 合并
output_path = os.path.join(output_folder, "merged_video.mp4")
ffmpeg_path = r"C:\Program Files\ffmpeg\bin\ffmpeg.exe"  # 确保路径正确
if not os.path.exists(ffmpeg_path):raise FileNotFoundError(f"FFmpeg 未找到,请检查路径:{ffmpeg_path}")
ffmpeg_cmd = [ffmpeg_path,'-i', video_file_path,'-i', audio_file_path,'-c:v', 'copy','-c:a', 'copy','-strict', 'experimental',output_path]
try:subprocess.run(ffmpeg_cmd,check=True)print(f"合并完成:{output_path}")
except subprocess.CalledProcessError as e:print(f"合并失败:{e}")

3、效果图

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/39044.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode热题100精讲——Top3:最长连续序列【哈希】

你好,我是安然无虞。 文章目录 题目背景最长连续序列C解法Python解法 题目背景 如果大家对于 哈希 类型的概念并不熟悉, 可以先看我之前为此专门写的算法详解: 蓝桥杯算法竞赛系列第九章巧解哈希题,用这3种数据类型足矣 最长连续序列 题目链接&#x…

pyecharts在jupyter notebook中不能够渲染图表问题。

在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。 1、原因分析 2、解决办法 如果是使用的虚拟环境,需要下你提前激活虚拟环境,再进行下列操作。 因为需要…

使用python numpy计算并显示音频数据的频谱信息

一 概念 最近需要用到这个数据。笔者需要,使用 Python 的numpy库结合scipy和matplotlib库来计算并显示音频数据频谱信息的示例代码。我们将使用scipy.io.wavfile来读取音频文件,numpy进行快速傅里叶变换(FFT)计算频谱&#xff0…

算法刷题整理合集(七)·【算法赛】

本篇博客旨在记录自已的算法刷题练习成长,里面注有详细的代码注释以及和个人的思路想法,希望可以给同道之人些许帮助。本人也是算法小白,水平有限,如果文章中有什么错误或遗漏之处,望各位可以在评论区指正出来&#xf…

[免费]SpringBoot+Vue城市交通管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue城市交通管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue城市交通管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 城市交通管理系统的目的是让使用者可以更方便的将…

同旺科技USB to I2C 适配器 ---- 指令循环发送功能

所需设备: 内附链接 1、同旺科技USB to I2C 适配器 1、周期性的指令一次输入,即可以使用 “单次发送” 功能,也可以使用 “循环发送” 功能,大大减轻发送指令的编辑效率; 2、 “单次发送” 功能,“发送数据…

SQL Server——表数据的插入、修改和删除

目录 一、引言 二、表数据的插入、修改和删除 (一)方法一:在SSMS控制台上进行操作 1.向表中添加数据 2.对表中的数据进行修改 3.对表中的数据进行删除 (二)方法二:使用 SQL 代码进行操作 1.向表中添…

【MySQL】存储过程

目录 基本概念存储过程操作定义存储过程变量定义局部变量用户变量系统变量全局变量会话变量 参数传递in 关键字out 关键字inout 关键字 流程控制判断分支语句 if分支语句 case 循环循环语句 while循环语句 repeat循环语句 loop 游标异常处理 存储函数 基本概念 概述 MySQL 5.…

大数据学习(77)-Hive详解

🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一…

一种很新的“工厂”打开方式---智慧工厂

随着信息技术的不断进步,特别是数字化、网络化、智能化技术的快速发展,传统的工厂管理模式已经难以满足现代企业对于生产效率、安全管理以及决策支持等方面的需求,智能制造已成为全球制造业发展的主流趋势。 由于工厂实时数据的多样性、复杂性…

基于python的租房数据分析系统(爬虫爬取真实数据)

项目介绍 本租房数据分析系统具备创新爬虫功能,能从安居客实时抓取房屋信息,同时提供全面的用户管理、个人中心服务。系统支持房屋信息的新增、修改、删除、查询及用户评论,以及租房数据的全面管理分析。此外,房屋资讯管理和轮播图…

Java——ArrayList集合

ArrayList:基于动态数组实现,支持随机访问,适合频繁的随机访问操作,但在插入和删除元素时性能较差。 技术层面介绍 所属类库:ArrayList 位于 java.util 包中,它实现了 List 接口,因此具备 Lis…

【Linux】线程库

一、线程库管理 tid其实是一个地址 void* start(void* args) {const char* name (const char *)args;while(true){printf("我是新线程 %s ,我的地址:0x%lx\n",name,pthread_self());sleep(1);}return nullptr; }int main() {pthread_t tid…

智能宠物饮水机WTL580微波雷达感应模块方案;便捷管理宠物饮水

一:宠物智能饮水与技术创新 1:非接触式感应 微波雷达模块实时检测宠物靠近行为,当宠物进入感应范围时,饮水机自动启动水泵,提供新鲜水流 2:多模式配置 感应距离:30-150cm可调,适应…

How to share files with Windows via samba in Linux mint 22

概述 Windows是大家日常使用最多的操作系统,在Windows主机之间,可以共享文件,那么如何在Windows主机与Linux主机之间共享文件呢? 要在Windows主机与Linux主机之间共享文件,我们可以借助Samba协议完成。借助Samba协议…

牛客周赛84 题解 Java ABCDE 仅供参考

A 小苯跑外卖 除一下看有没有余数 有余数得多一天 没余数正好 // github https://github.com/Dddddduo // github https://github.com/Dddddduo/acm-java-algorithm // github https://github.com/Dddddduo/Dduo-mini-data_structure import java.util.*; import java.io.*…

基于SpringBoot + Vue 的图书馆座位预约系统

SpringBoot 图书馆座位预约管理系统 自习室座位预约管理系统 javaSpringbootVUEredis 1. 开发环境: idea/eclipse、jdk1.8、maven、nodejs 2. 技术栈:java、springboot、Redis、mybatis、vue 3. 数据库: MySQL 有用户和管理员两个角色…

深入理解 lt; 和 gt;:HTML 实体转义的核心指南!!!

&#x1f6e1;️ 深入理解 < 和 >&#xff1a;HTML 实体转义的核心指南 &#x1f6e1;️ 在编程和文档编写中&#xff0c;< 和 > 符号无处不在&#xff0c;但它们也是引发语法错误、安全漏洞和渲染混乱的头号元凶&#xff01;&#x1f525; 本文将聚焦 <&#…

Vue 3 + TypeScript 实现视频播放与字幕功能:集成西瓜播放器 XGPlayer

文章目录 1. 前言&#xff1a;视频播放器的重要性2. 准备工作2.1 安装 Vue 3 项目2.2 安装 XGPlayer 和相关依赖 3. 实现视频播放3.1 初始化 XGPlayer 4. 添加字幕功能4.1 配置字幕 4.2 字幕文件格式5. 增加交互性完整的代码&#xff0c;仅供参考6. 总结 在现代 Web 开发中&…

Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成

文件路径models/view_transformers 父类 是class BiLinearSample(nn.Module)基于https://github.com/aharley/simple_bev。 函数解析 函数bev_coord_to_feature_coord的功能 将鸟瞰图3D坐标通过多相机&#xff08;针孔/鱼眼&#xff09;内外参投影到图像特征平面&#xff0…