二維碼
微世推網(wǎng)

掃一掃關(guān)注

當(dāng)前位置: 首頁 » 企業(yè)商訊 » 汽車行業(yè) » 正文

使用python下載網(wǎng)頁上的m3u8可以嗎流

放大字體  縮小字體 發(fā)布日期:2023-05-07 00:09:54    作者:何洱維    瀏覽次數(shù):378
導(dǎo)讀

有時(shí)候,我們?cè)诰W(wǎng)頁上追劇得時(shí)候,出于各種原因,希望將這些視頻下載到本地。接下來,我們用python擼一段代碼來實(shí)現(xiàn)。1 抓包:獲取.m3u8得請(qǐng)求地址具體步驟:在瀏覽器中打開視頻網(wǎng)頁F12打開開發(fā)者工具,并切換至網(wǎng)絡(luò)

有時(shí)候,我們?cè)诰W(wǎng)頁上追劇得時(shí)候,出于各種原因,希望將這些視頻下載到本地。接下來,我們用python擼一段代碼來實(shí)現(xiàn)。

1 抓包:獲取.m3u8得請(qǐng)求地址

具體步驟:

在瀏覽器中打開視頻網(wǎng)頁F12打開開發(fā)者工具,并切換至網(wǎng)絡(luò)標(biāo)簽刷新該網(wǎng)頁,發(fā)現(xiàn)網(wǎng)絡(luò)得列表中加載了多個(gè)請(qǐng)求
在篩選器框中,輸入m3u8過濾其他無關(guān)得請(qǐng)求
點(diǎn)擊m3u8請(qǐng)求,切換至預(yù)覽,確認(rèn)下請(qǐng)求文本是否是ts文件得請(qǐng)求列表,如果是,說明我們抓取得地址是正確得,ts文件是視頻在線播放時(shí),被切割得視頻片段,我們專業(yè)從中任意復(fù)制一條,在瀏覽器中打開,瀏覽器會(huì)自動(dòng)彈出下載該文件得對(duì)話框,下載完成后,其實(shí)是專業(yè)用視頻播放軟件播放該視頻得。2 擼代碼2.1 使用requests,請(qǐng)求上一步得.m3u8結(jié)尾得url

import requestsfrom fake_useragent import UserAgent# .m3u8得請(qǐng)求地址url = 'https://m3u.haiwaikan感謝原創(chuàng)分享者/xm3u8/c67187e521c6459f9cdd4731bff1e96e3c32d6d99d6c4f68be0469232320c8389921f11e97d0da21.m3u8'# 設(shè)置代理(有些網(wǎng)站需要最新科學(xué)上網(wǎng)才能訪問)proxies = {"https": "感謝分享127.0.0.1:10887"}# 將請(qǐng)求包裝成瀏覽器端訪問,防止有些網(wǎng)站反爬蟲ua = UserAgent()headers = {'User-Agent': ua.random}response = requests.get(url, headers=headers, proxies=proxies)content = response.textprint(content)

debug看下已經(jīng)拿到了ts文件列表了

2.2 解析上面得響應(yīng)結(jié)果,提取ts鏈接列表

# 將文本拆分為行l(wèi)ines = content.split('\n')ts_urls = []# 遍歷文本提取ts視頻片段得地址for i in range(0, len(lines)):if lines[i].startswith("https:"):ts_urls.append(lines[i])2.3 遍歷ts鏈接列表,使用requests逐個(gè)訪問各個(gè)列表,將結(jié)果寫入本地磁盤,該步驟會(huì)在盤符下生成多個(gè)ts文件;

# 指定保存得文件路徑:因?yàn)闄?quán)限問題,該路徑必須先創(chuàng)建好save_dir = '/Users/zhaoyang/Downloads/ts_demo/'for i in range(0, len(ts_urls)):ts_resp = requests.get(ts_urls[i], headers=headers, proxies=proxies)with open(save_dir + 'video_' + str(i) + '.ts', 'wb') as f:f.write(ts_resp.content)2.4 將多個(gè)ts文件合并一個(gè)大得ts文件

with open(save_dir + 'all.ts', 'wb') as outfile:for i in range(0, 351):file_name = save_dir + 'video_' + str(i) + '.ts'with open(file_name, 'rb') as infile:outfile.write(infile.read())

多個(gè)ts文件合并成大文件

2.5 使用ffmpeg將大得.ts文件轉(zhuǎn)換成.mp4

需要在電腦上安裝好ffmpeg,并添加到環(huán)境變量

# 轉(zhuǎn)換為MP4格式subprocess.call(['ffmpeg', '-i', save_dir + 'all.ts', '-c', 'copy', save_dir + 'output.mp4'

 
(文/何洱維)
免責(zé)聲明
本文為何洱維原創(chuàng)作品?作者: 何洱維。歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明原文出處:http://m.nyqrr.cn/qysx/show-144229.html 。本文僅代表作者個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,作者需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請(qǐng)及時(shí)聯(lián)系我們郵件:weilaitui@qq.com。
 

Copyright?2015-2023 粵公網(wǎng)安備 44030702000869號(hào)

粵ICP備16078936號(hào)

微信

關(guān)注
微信

微信二維碼

WAP二維碼

客服

聯(lián)系
客服

聯(lián)系客服:

24在線QQ: 770665880

客服電話: 020-82301567

E_mail郵箱: weilaitui@qq.com

微信公眾號(hào): weishitui

韓瑞 小英 張澤

工作時(shí)間:

周一至周五: 08:00 - 24:00

反饋

用戶
反饋