您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么讓Python爬取B站視頻,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
B站是國內知名的視頻彈幕網站,有最及時的動漫新番,ACG氛圍,最有創意的Up主。站點中的視頻數據分成了視頻畫面和音頻數據。
今天帶大家下載以及合并B站的視頻。
python 3.6
pycharm
requests
re
json
subprocess
目標網頁分析
導入工具
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)
效果圖
這里使用到一個工具<ffmpeg>,FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。
下載之后解壓即可,但是需要你設置環境變量。
1、我的電腦,鼠標右鍵點擊屬性
2、選擇系統高級設置
4、添加環境變量,復制文件路徑,選擇新建添加即可。
上述就是小編為大家分享的怎么讓Python爬取B站視頻了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。