/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
bilibili_video_download是一款非常好用的b站視頻爬蟲(chóng)下載工具,可以批量下載BiliBili視頻,能夠指定網(wǎng)頁(yè)或者UP主主頁(yè)進(jìn)行視頻采集,使用起來(lái)非常方便,只需要輸入網(wǎng)址即可,有需要的用戶趕快來(lái)下載吧!
軟件前言
在正常情況下(不使用其他工具或插件),Web端的bilibili似乎無(wú)法(徹底白嫖)下載視頻,遂學(xué)習(xí)了如何利用Python爬蟲(chóng)下載b站視頻(不包括會(huì)員視頻),詳情(手法)且看下文。
參考視頻:https://www.bilibili.com/video/BV1Fy4y1D7XS
在分析b站網(wǎng)頁(yè)源代碼的過(guò)程中發(fā)現(xiàn)其視頻和音頻是分開(kāi)的,下載后一個(gè)只有聲音,一個(gè)只有畫面,這顯然不能滿足我們的要求。解決方案是:利用 ffmpeg 這款強(qiáng)大的開(kāi)源工具把下載后的音視頻進(jìn)行合并。故想要完美體驗(yàn),先得下載安裝并配置好 ffmpeg 。(到官網(wǎng)下載,解壓后把文件夾內(nèi)的bin 添加到環(huán)境變量)
Python中使用到的模塊有:requests、re、json、subprocess、os
準(zhǔn)備工作
視頻的url比較顯眼,容易獲取。headers也好找,但還需要一重要信息。
通過(guò)瀏覽器(F12)查看分析目標(biāo)網(wǎng)頁(yè),找到我們的下一目標(biāo),即視(音)頻下載鏈接。
一番查找后,發(fā)現(xiàn)在head里的第四個(gè)script 標(biāo)簽內(nèi)似乎有我們想要的東西。
可訪問(wèn)此鏈接,卻出現(xiàn)403,即沒(méi)有權(quán)限訪問(wèn)此站。
這又怎么回事?查看Request Headers 信息,發(fā)現(xiàn)沒(méi)有referer這一項(xiàng),于是嘗試在數(shù)據(jù)包中加上referer信息看能否訪問(wèn)。(這里直接上bp了)
Forward后,出現(xiàn)文件下載頁(yè)面。
下載后打開(kāi)改文件,確為目標(biāo)視頻。
獲取數(shù)據(jù)
通過(guò)requests庫(kù)向目標(biāo)站點(diǎn)發(fā)起請(qǐng)求,請(qǐng)求需包含header、referer等信息,以偽裝成是瀏覽器發(fā)出請(qǐng)求。如果服務(wù)器能正常響應(yīng),會(huì)得到一個(gè)Response,便是所要獲取的頁(yè)面內(nèi)容。
測(cè)試代碼:
運(yùn)行結(jié)果:
解析內(nèi)容
得到的內(nèi)容可能是HTML、json等格式,可以用頁(yè)面解析庫(kù)、正則表達(dá)式等進(jìn)行解析。
title信息比較好找,就在head中。
利用正則表達(dá)式對(duì)其進(jìn)行提取。
復(fù)制代碼 隱藏代碼 title = re.findall('<title data-vue-meta="true">(.*?)</title>',html_data)[0].replace("_嗶哩嗶哩 (゜-゜)つロ 干杯~-bilibili",""
音視頻下載鏈接在json數(shù)據(jù)中。
利用正則表達(dá)式和字典(列表)的“鍵”對(duì)其提取。
測(cè)試代碼:
運(yùn)行結(jié)果:
保存數(shù)據(jù)
通過(guò)下載鏈接,將音視頻下載到本地并保存。
測(cè)試代碼:
運(yùn)行結(jié)果:
合并音視頻
把分開(kāi)的音頻和視頻進(jìn)行合并。(幾次測(cè)試下來(lái),發(fā)現(xiàn)如果用視頻標(biāo)題作為文件名去執(zhí)行ffmpeg命令會(huì)導(dǎo)致其出現(xiàn)錯(cuò)誤,暫時(shí)沒(méi)找到解決方法,后來(lái)試著將文件名先重命名為1.mp3、1.mp4這種簡(jiǎn)單的名字,可以完成合并,再刪除之)
測(cè)試代碼:
運(yùn)行結(jié)果:
合并后視頻正常播放,有聲有色。
最終代碼
效果:
打包成exe
首先我們要先安裝Pyinstaller,直接在cmd使用pip命令
然后,把ffmpeg和py文件放置到同一文件夾下。
因?yàn)閒fmpeg是要一起打包的,需要對(duì)代碼中的相應(yīng)目錄做小幅修改。修改后的代碼如下:
修改好后,cmd切換到我們剛剛放文件的目錄,執(zhí)行如下命令:
(這里-i bilibili.ico是對(duì)程序的圖標(biāo)進(jìn)行設(shè)置,為可選項(xiàng))
執(zhí)行完畢會(huì)發(fā)現(xiàn)當(dāng)前目錄多了幾個(gè)文件夾,打開(kāi)其中名為dist的文件夾,里面生成了一個(gè)名為bilibili_video_download的exe應(yīng)用程序,并且圖標(biāo)也是我們?cè)O(shè)置的圖案。(這里要把exe文件移動(dòng)到上一級(jí)目錄,即ffmpeg的同級(jí)目錄)
一、下載打開(kāi)軟件,使用B站手機(jī)客戶端代碼注冊(cè)。
二、用戶可以自己復(fù)制鏈接,查找某個(gè)上傳的視頻,大量下載。也可以直接搜索。
三、輸入要看的視頻的名稱,選擇分區(qū)單擊并查找資源。
四、檢查要下載的視頻,用右鍵下載。
目前功能
番劇下載(Web|TV)。
普通內(nèi)容下載(Web|TV) (TV接口可以下載部分UP主的無(wú)水印內(nèi)容)。
多分P自動(dòng)下載。
選擇指定分P進(jìn)行下載。
選擇指定清晰度進(jìn)行下載。
下載外掛字幕并轉(zhuǎn)換為srt格式。
自動(dòng)合并音頻+視頻流+字幕流。
二維碼登錄賬號(hào)。
關(guān)于騰牛 | 聯(lián)系方式 | 發(fā)展歷程 | 版權(quán)聲明 | 下載幫助(?) | 廣告聯(lián)系 | 網(wǎng)站地圖 | 友情鏈接
Copyright 2005-2024 QQTN.com 【騰牛網(wǎng)】 版權(quán)所有 鄂ICP備2022005668號(hào)-1 | 鄂公網(wǎng)安備 42011102000260號(hào)
聲明:本站非騰訊QQ官方網(wǎng)站 所有軟件和文章來(lái)自互聯(lián)網(wǎng) 如有異議 請(qǐng)與本站聯(lián)系 本站為非贏利性網(wǎng)站 不接受任何贊助和廣告