嗨喽,大家好呀~这里是爱看美女的茜茜呐
看到这张图片,大家应该就知道我们的目的了吧
话不多说,我们马上开始吧~
Python 3.8
Pycharm 2021.2版本
ffmpeg <需要设置环境变量> 软件的使用 合成视频和音频
模块使用:
内置模块 你安装好python环境就可以了
import re
import json
import subprocess
什么是python编程语言 ?
是一门计算机语言: 作为人和电脑进行沟通语言
如何交流:
计算机识别的二进制的数据, 但是我们写代码并不是二进制数据
解释器: Python 3.8 <稳定> , 不推荐最新版本 --> 新版本有时候模块不兼容
编辑器: IDLE --> pycharm <专业版: 付费 <可找我弄免费> / 社区版: 免费>
一. 数据来源分析
明确需求: B站视频内容采集
明确采集网站是什么?
明确采集数据是什么?
视频内容 / 视频标题
分析 视频内容 / 视频标题 数据在什么地方可以获取 <请求那个链接能够得到>
在网页源代码里面就有
二. 代码实现步骤
发送请求, 模拟浏览器对于url地址发送请求
获取数据, 获取网页源代码
解析数据, 提取我们想要的数据内容
保存数据, 保存本地文件夹里面
# 导入数据请求模块
import requests
# 导入正则模块
import re
# 导入json模块
import json
# 导入格式化输出模块
from pprint import pprint
# 导入进程模块
import subprocess
# 导入文件操作模块
import os
# 请求链接
url = 'https://*****/video/BV1He4y1C73U/'
# 模拟伪装 --> 防止被反爬
headers = {
# referer 防盗链, 告诉服务器我们请求链接是从哪里跳转过来的
'referer': 'https://*****/',
# user-agent 简称UA 用户代理 表示浏览器基本身份标识
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# 响应对象 表示请求成功 没有访问权限
print(response)
# 视频标题
title = re.findall('"title":"(.*?)","pubdate"', response.text)[0]
# 视频相关信息
video_info = re.findall('', response.text)[0]
# 数据类型转换
json_data = json.loads(video_info)
# 字典取值 键值对取值 ---> 根据冒号左边的内容[键], 提取冒号右边的内容[值]
# 提取音频url地址
audio_url = json_data['data']['dash']['audio'][0]['baseUrl'] # 有声音没有画面
video_url = json_data['data']['dash']['video'][0]['baseUrl'] # 有画面没有声音
print(title)
print(audio_url)
print(video_url)
# 发送请求获取二进制数据内容
audio_content = requests.get(url=audio_url, headers=headers).content # 音频内容
video_content = requests.get(url=video_url, headers=headers).content # 视频内容
with open('video\\' + title + '.mp3', mode='wb') as a:
a.write(audio_content)
with open('video\\' + title + '.mp4', mode='wb') as v:
v.write(video_content)
cmd = f"ffmpeg -i video\\{title}.mp4 -i video\\{title}.mp3 -c:v copy -c:a aac -strict experimental video\\{title}output.mp4"
subprocess.run(cmd)
os.remove(f'video\\{title}.mp4')
os.remove(f'video\\{title}.mp3')
感谢你观看我的文章呐~本次航班到这里就结束啦
希望本篇文章有对你带来帮助 ,有学习到一点知识~
躲起来的星星也在努力发光,你也要努力加油(让我们一起努力叭)。
最后,宣传一下呀~更多源码、资料、素材、解答、交流皆点击下方名片获取呀