首先分析下b站的視頻地址構成,如https://www.bilibili.com/video/BV1BW411R7QK?p=1,是由視頻編號加節數組成,如p=1代表視頻列表的第一集, p=2等與視頻第二集。
所以類似爬蟲,我們可以循環使用腳本命令和第三下載工具,如wget或you-get(Python)實現批量下載
以Python結合you-get為例
import os # 檢測you-get是否安裝,否則自動安裝 retu = os.popen('you-get').read() if not 'OPTION' in retu: print('安裝you-get中 . . .') os.system('pip install you-get') print('you-get已就緒!') else: print('you-get已就緒!') savePath = r'D:\Bilibili' # 視頻下載目標文件夾 if not os.path.exists(savePath): os.makedirs(savePath) # 循環拼接網址https://www.bilibili.com/video/BV1BW411R7QK?p=1 downloadPath = r'https://www.bilibili.com/video/BV1r541147cZ?p=' for page in range(1, 20): url = downloadPath + str(page) cmd = 'you-get ' + ' --format=flv720 ' + url + ' -o ' + savePath # 字符串拼接you-get命令,--format 指定視頻質量,不帶該參數則默認1080P os.system(cmd)
可以修改range范圍,開啟多個不同腳本來增加下載速度,測試最大支持5個進程同時下載。
注意停止下載前,務必手動終止腳本,否則有可能會被拉黑IP,導致當天無法繼續下載。