爬虫案例-爬取某站视频

news/2025/3/30 6:52:12/

文章目录

  • 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.ppmy.cn/news/1583433.html

相关文章

蓝桥杯嵌入式十六届模拟三

由硬件框图可以知道我们要配置LED 和按键 一.LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 二.按键 按键配置,由原理图按键所对引脚要GPIO_Input 生成代码,在文件夹中添加code文件夹,code中添加fun.…

长江学者答辩ppt_特聘教授ppt案例_校企联聘ppt制作_青年项目ppt模板

“长江学者奖励计划”是高层次人才队伍建设的引领性工程。 为落实科教兴国战略,延揽海内外中青年学界精英,培养造就高水平学科带头人,启动实施了“长江学者奖励计划”。 / 长江学者答辩ppt案例 长江学者特聘教授答辩PPT设计 长江学者PPT项…

【大模型学习】什么是具身智能

目录 一、技术背景与历史发展 二、什么是具身智能? 三、技术要点及具体实现细节 1. 感知技术: 2. 运动控制: 3. 学习机制: 4. 人机交互: 四、架构 五、应用 六、实际应用案例 一、技术背景与历史发展 人工智能的…

如何保障kafka的数据不会重复消费呢,如何防止漏掉呢

在 Kafka 中保障数据不重复消费且不丢失,需要从生产者、消费者和 Kafka 自身配置三个层面综合设计。以下是具体实现方案: 一、防止数据重复消费 1. 消费者端控制 手动提交 Offset 禁用自动提交(enable.auto.commitfalse)&#x…

LangChain开发(二)LangChain提示词模板Template使用

文章目录 Prompt tempates(提示词模板)什么是提示词模板?创建一个提示词模板(prompt template)聊天消息提示词模板(chat prompt template)MessagesPlaceholder 提示词追加示例(Few-s…

ShardingSphere5.2.1+达梦数据库分表操作

上一篇使用的ShardingSphere版本为4.1.1&#xff0c;本次使用5.2.1 依赖引用 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instan…

JPA、Hibernate、 Spring Data JPA 以及Mybatis的关系(Java)

一、JPA是啥&#xff1f; 本质&#xff1a;是 Java EE 的 ORM 规范&#xff08;定义接口和注解&#xff0c;如 Entity, Table&#xff09;&#xff0c;不提供具体实现。 &#xff08;在我看来他就是个标准&#xff0c;就是你怎么写都得按人家标准来&#xff0c;不然就不行&…

蓝桥杯—最少操作数

一.题目 分析:每次可以进行三次操作&#xff0c;求在n步操作后可以达到目标数的最小n&#xff0c;和最短路径问题相似&#xff0c;分层遍历加记忆化搜索防止时间复杂度过高&#xff0c;还需要减枝操作 import java.util.HashSet; import java.util.LinkedList; import java.ut…