中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么讓Python爬取B站視頻

發布時間:2021-10-26 09:56:18 來源:億速云 閱讀:157 作者:柒染 欄目:大數據

這期內容當中小編將會給大家帶來有關怎么讓Python爬取B站視頻,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

前言

B站是國內知名的視頻彈幕網站,有最及時的動漫新番,ACG氛圍,最有創意的Up主。站點中的視頻數據分成了視頻畫面和音頻數據。

今天帶大家下載以及合并B站的視頻。

環境介紹:

  • python 3.6

  • pycharm

  • requests

  • re

  • json

  • subprocess

解析網頁

目標網頁分析

怎么讓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站視頻了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荔浦县| 建瓯市| 九江县| 方山县| 玛曲县| 黔南| 富平县| 八宿县| 台北县| 吴旗县| 玛曲县| 红河县| 上高县| 东丰县| 西贡区| 马山县| 丹东市| 当阳市| 辉南县| 义乌市| 南部县| 宜兰县| 朝阳县| 苍梧县| 萨嘎县| 开鲁县| 锡林郭勒盟| 大宁县| 上饶市| 凤城市| 门头沟区| 偏关县| 晋中市| 报价| 平安县| 西峡县| 济阳县| 家居| 长寿区| 额尔古纳市| 灵寿县|