宣告:本教程只供學習,不用于商業用途,教程中的視頻是博主自己發布的,不存在著作權問題,
目錄
一、找到下載的url-----思路
二、用python PA到視頻檔案
1.匯入模塊
2.請求表頭設定
3.拿到頁面源代碼
4.寫正則拿url和視頻名
5.請求url并下載頁面內容(下載視頻檔案)
三、運行結果
一、找到下載的url-----思路
案例url:炸爐后遺癥_嗶哩嗶哩bilibili_CSGO
打開網頁,按F12,進入開發者工具,選擇網路,然后按F5重繪網頁進行抓包,

抓完包后,根據我的經驗,我們要找的包在預覽中看到的是一堆亂碼并且有紅點的,它有可能就是我們要的音頻或者視頻,為了驗證這個想法,我們可以用IDM這個下載工具做測驗,

我們復制這段url到IDM的下載地址里,看下圖操作,



復制到Address里,點擊OK、Start Download,開始下載,

誒~,報錯了,意料之中,它說服務器回應我們沒有權限下載這個檔案,點擊確定,不急解決方法很簡單,


我們雙擊這項任務,彈出了這個視窗,映入眼簾的是我們親愛的Referer------俗稱:防盜鏈,接下來懂得都懂,

復制請求標頭里面的防盜鏈值到剛剛那里,點擊OK,再次Resume重新下載,

OK這次下載成功了,打開看看,我下載到的是視頻檔案但它里面播放的是音頻,那么就是說,B站的視頻和音頻的url是分開的,并且說明了我剛剛的推測是對的,

我們把目光轉到這個剛剛用來下載的url上,發現“.m4s”這串字符,根據我的測驗帶有這個字符的都是可以下載的視頻檔案,接下來我們要看這些url會不會在頁面中出現,如果有我們就可以用正則快速的獲取這些url,

在頁面源代碼中的確有這些url,那就好辦了!
重點來了:通過測驗可得,這些url是有分布規律的,頁面中第一次出現的.m4s的url,是清晰度的最高的,如果你是b站大會員并且視頻支持4K的話,那么第一條url的清晰度就是4K,第二條則是第一條url的備用鏈接,也就是說第三條url才是1080P高碼率,以此類推直到清晰度是360p時,它下一條url就是只有音頻的視頻檔案,當然這個規律只是暫時的而已,具體哪個是視頻哪個是音頻還需要自己做測驗,
說到這里下面我們就可以開始用Python爬取視頻了,
二、用python PA到視頻檔案
1.匯入模塊
import requests
import re
2.請求表頭設定
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
"referer": "https://www.bilibili.com/video/BV1TL411j7sr?spm_id_from=333.999.0.0",
"cookie": "輸入你自己的cookie"
}
3.拿到頁面源代碼
url = "https://www.bilibili.com/video/BV1TL411j7sr?spm_id_from=333.999.0.0"
resp = requests.get(url=url,headers=headers).text
#跳過識別不了的gbk字符
resp = resp.encode("gbk","ignore").decode("gbk", "ignore")
4.寫正則拿url和視頻名
obj = re.compile(r'"baseUrl":"(.*?)"',re.S)
obj2 = re.compile(r'<span class="tit">(.*?)</span>',re.S)
voide_url = obj.findall(resp)
voide_name = obj2.findall(resp)
5.請求url并下載頁面內容(下載視頻檔案)
resp_video = requests.get(voide_url[0],headers=headers)#第一個url視頻清晰度最高
resp_audio = requests.get(voide_url[7],headers=headers)#以此類推第八個就是自有音頻的視頻檔案
with open("{0}.mp4".format(voide_name[0]), mode="wb") as f:
f.write(resp_video.content)
#這里直接把視頻檔案保存為mp3的音頻格式
with open("{0}.mp3".format(voide_name[0]), mode="wb") as f:
f.write(resp_audio.content)
三、運行結果


拿到并能正常播放檔案,最后用一些軟體合并兩個檔案就是一個完整的視頻了, ?????
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/385454.html
標籤:其他
上一篇:RK開發者大會直播收看總結
