天天看點

使用python爬取視訊

寫在前面:此部落格僅用于參考學習,代碼中部分網址已删

準備工作

  1. python
  2. burpsuite

視訊爬取

視訊網址:https://v.qq.com/x/cover/mzc00200xnrv1u5.html

使用h5播放器播放網址内視訊,右擊選擇複制調試資訊

使用python爬取視訊

将複制好的調試資訊找個js線上解析工具進行解析,解析好的資料如下,發現視訊m3u8相關檔案位址

使用python爬取視訊

對vurl進行解碼

使用python爬取視訊

通路解碼後的網址,可以下載下傳一個m3u8檔案,裡面儲存了視訊各片段的位置

使用python爬取視訊

burpsuite抓包

(也可使用chrome自帶的network進行篩選,但我感覺用不來)

播放正片,并進行攔截,抓包結果如下:

使用python爬取視訊

由其中的一個帶有ts片段的包得到所有視訊片段的上級網址,由此可以得到所有視訊片段的真實位址。

視訊下載下傳

由上所得編寫python腳本下載下傳視訊

import os
import requests
from bs4 import BeautifulSoup

header = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"
}

base_url='https://apd-adeb75b3bf37b1aa406b04cc29fda836.v.smtcdns.com/varietyts.tc.qq.com/AZCNwLTijzPtfQ76cdHIH9BK7fMxN1rPKprjstzdwyuE/uwMROfz2r5zAoaQXGdGnC2df644E7D3uP8M8pmtgwsRK9nEL/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/'
fp=open(r'C:\Users\19871\Desktop\z00368kgril.321002.ts.m3u8','r')
with open(r'C:\Users\19871\Desktop\test.ts','wb') as f:
    while True:
        line=fp.readline().replace('\n','')
        if line:
            if line[0]!='#':
                url=base_url+line
                r=requests.get(url,headers=header)
                f.write(r.content)
                f.flush()
        else:
            break
f.close()
fp.close()
print('爬取完畢')       
           

下載下傳完成後如下:

使用python爬取視訊

正常播放

使用python爬取視訊