python爬取音乐排行_Python爬取bilibili Top排行榜视频

前言

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

基本开发环境

  • Python 3.6 

  • Pycharm

相关模块使用

import requestsimport reimport jsonimport subprocess

目标网页分析

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第1张图片

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第2张图片

B站的视频和音频是分开的,音频url和视频url都在里面

提取数据

1、正则匹配提取数据

2、正则提取出数据为一个列表,通过列表取值,取出

3、字符串转json数据

4、通过字典取值的方式,提取视频url以及音频url

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第3张图片

提取出来的json数据格式

  • 提取视频url、音频url以及视频标题

def get_video_info(url):    html_data = get_response(url).text    result = re.findall(', html_data, re.S)[0]    title = re.findall('(.*?)', html_data)[0]    html_data = json.loads(result)    # 音频url地址    audio_url = html_data['data']['dash']['audio'][0]['backupUrl'][0]    # 视频url地址    video_url = html_data['data']['dash']['video'][0]['backupUrl'][0]
  • 通过with open 下载保存视频和音频

def save(title, audio_url, video_url):    audio_content = get_response(audio_url).content    video_content = get_response(video_url).content    with open(title + '.mp3', mode='wb') as f:        f.write(audio_content)    with open(title + '.mp4', mode='wb') as f:        f.write(video_content)    print('正在保存:', title)

合并视频与音频

这里使用到一个工具<ffmpeg>,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

可以自行百度下载安装,也可以在公众号回复 <201214B站视频> 领取

下载之后解压即可,但是需要你设置环境变量。

1、我的电脑,鼠标右键点击属性

2、选择系统高级设置

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第4张图片

3、选择环境变量

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第5张图片

4、添加环境变量,复制文件路径,选择新建添加即可

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第6张图片

一切准备就绪之后,合成视频即可。

def video_audio_merge_single(video_name):    print("视频合成开始:", video_name)    #  ffmpeg -i video.mp4 -i audio.wav -c:v copy -c:a aac -strict experimental output.mp4    command = 'ffmpeg -i {}.mp4 -i {}.mp3 -c:v copy -c:a aac -strict experimental output.mp4'.format(        video_name, video_name, video_name)    subprocess.Popen(command, shell=True)    print("视频合成结束:", video_name)

运行效果

python爬取音乐排行_Python爬取bilibili Top排行榜视频_第7张图片

5ba9e07ef211c4ebc4e5f78b21f1df89.png

记得留下你的点赞和分享再看哟  ┗|`O′|┛ 嗷~~

你可能感兴趣的:(python爬取音乐排行)