爬取B站视频练练手,做笔记
爬取B站视频下载到本地,做个笔记直接上代码了
环境
windows 10
Python:3.8.3
# subprocess[进程模块]
import requests, re, json, os, subprocess
# 要爬取的地址
url = 'https://www.bilibili.com/video/BV1mL4y1B73w/?spm_id_from=333.788.recommend_more_video.-1'
# 仿造一个header头
headers = {
"Referer":url,
"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
}
# 请求地址
html_data = requests.get(url=url, headers=headers)
# 视频的标题
title = re.findall('<title data-vue-meta="true">(.*?)_哔哩哔哩_bilibili</title>', html_data.text)[0]
# 下载的视频存储到 对应的标题中
filename = f'{title}\\'
# 没有此文件夹直接创建
if not os.path.exists(filename):
os.mkdir(filename)
# 读取视频信息
videoData = re.findall('<script>window.__playinfo__=(.*?)</script>', html_data.text)[0]
# 解析视频信息
videoJsonData = json.loads(videoData)
# 视频地址
video_url = videoJsonData['data']['dash']['video'][0]['baseUrl']
# 音频地址
audio_url = videoJsonData['data']['dash']['audio'][0]['baseUrl']
# 请求 音频和视频地址
audio_content = requests.get(url=audio_url, headers=headers).content
video_content = requests.get(url=video_url, headers=headers).content
# 保存音频
with open(filename + title+'.mp3', mode='wb') as audio:
audio.write(audio_content)
# 保存视频
with open(filename + title+'.mp4', mode='wb') as video:
video.write(video_content)
# 视频与音频合并
cmd = f"ffmpeg -i {filename}\\{title}.mp4 -i {filename}\\{title}.mp3 -c:v copy -c:a aac -strict experimental {filename}\\{title}output.mp4"
subprocess.run(cmd, shell=True)
# 移除音频和视频
os.remove(filename+title+'.mp3')
os.remove(filename+title+'.mp4')
print(title, '视频下载完成')
# ffmpeg 下载地址 http://ffmpeg.org/download.html 下载后解压到指定目录下,添加到环境变量中,重启PyCharm
本作品采用《CC 协议》,转载必须注明作者和本文链接
我的声望不够,无法回复您的私信,能加个联系方式吗?QQ182101842