怎么让Python爬取B站视频

发布时间:2021-10-26 09:56:18 作者:柒染
来源:亿速云 阅读:140

这期内容当中小编将会给大家带来有关怎么让Python爬取B站视频,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

前言

B站是国内知名的视频弹幕网站,有最及时的动漫新番,ACG氛围,最有创意的Up主。站点中的视频数据分成了视频画面和音频数据。

今天带大家下载以及合并B站的视频。

环境介绍:

解析网页

目标网页分析

怎么让Python爬取B站视频

怎么让Python爬取B站视频

爬虫代码

导入工具

import requests
import re  # 正则表达式
import pprint
import json
import subprocess

请求头

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}

请求数据

def send_request(url):
    response = requests.get(url=url, headers=headers)
    return response

解析视频数据

def get_video_data(html_data):
    """解析视频数据"""

    # 提取视频的标题
    title = re.findall('<span class="tit">(.*?)</span>', html_data)[0]
    # print(title)

    # 提取视频对应的json数据
    json_data = re.findall('<script>window\.__playinfo__=(.*?)</script>', html_data)[0]
    # print(json_data)  # json_data 字符串
    json_data = json.loads(json_data)
    pprint.pprint(json_data)

    # 提取音频的url地址
    audio_url = json_data['data']['dash']['audio'][0]['backupUrl'][0]
    print('解析到的音频地址:', audio_url)

    # 提取视频画面的url地址
    video_url = json_data['data']['dash']['video'][0]['backupUrl'][0]
    print('解析到的视频地址:', video_url)

    video_data = [title, audio_url, video_url]
    return video_data

保存数据

def save_data(file_name, audio_url, video_url):
    # 请求数据
    print('正在请求音频数据')
    audio_data = send_request(audio_url).content
    print('正在请求视频数据')
    video_data = send_request(video_url).content
    with open(file_name + '.mp3', mode='wb') as f:
        f.write(audio_data)
        print('正在保存音频数据')
    with open(file_name + '.mp4', mode='wb') as f:
        f.write(video_data)
        print('正在保存视频数据')

数据的合并

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

效果图

怎么让Python爬取B站视频

合并视频与音频

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

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

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

2、选择系统高级设置

怎么让Python爬取B站视频

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

上述就是小编为大家分享的怎么让Python爬取B站视频了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. Python爬取B站视频的实现方法
  2. Python如何爬取b站番剧信息

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Python如何爬取58同城租房数据并破解字体加密

下一篇:如何让Python爬取招聘网站数据并做数据可视化处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》