爬取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 协议》,转载必须注明作者和本文链接
讨论数量: 2

我的声望不够,无法回复您的私信,能加个联系方式吗?QQ182101842

1年前 评论
会尿尿的大鲨鱼 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!