房地產(chǎn)公司 網(wǎng)站建設(shè)數(shù)據(jù)分析師要學(xué)什么
.
- 1.分析視頻請求
- 1
- 2
- 3
- 2.數(shù)據(jù)獲取和拼接
1.分析視頻請求
1
通過抓包觀察我們發(fā)現(xiàn)視頻是由.ts文件拼接成的每一個.ts文件代表一小段
2
通過觀察0.ts和1.ts的url我們發(fā)現(xiàn)他們只有最后一段不同我們網(wǎng)上找到url獲取的包
3
我們發(fā)現(xiàn)index.m3u8中儲存著所有的.ts文件名在拼接上前面固定的url就可以獲取到.ts文件
2.數(shù)據(jù)獲取和拼接
import shutil
import requests
import re
import os
from multiprocessing.dummy import Poolurl ='https://vip.lz-cdn.com/20221109/37176_faf59775/1200k/hls/mixed.m3u8' # m3u8網(wǎng)址res = requests.get(url).text
print(res)
# 正則提取內(nèi)容
ts=re.findall(r",\n(.*?)\d+.ts",res,flags=re.S)[0]
print(ts)
ts2=re.findall(r"(\d+).ts",res,flags=re.S)
print(ts2)
start=int(ts2[0])
end=int(ts2[-1])
def xlx(i):i=ts+str(i)# 拼接完整的ts文件下載鏈接u = 'https://vip.lz-cdn.com/20221109/37176_faf59775/1200k/hls/' + i + ".ts"#拼接urlr = requests.get(url=u).contentprint(i, u)# 二進制寫入到本地with open('./nihao/' + i + '.ts', mode="wb") as file:file.write(r)if not os.path.exists('./nihao'):os.mkdir('./nihao')
else:shutil.rmtree('./nihao')os.mkdir('./nihao')pool = Pool(100) #開啟線程池# 定義循環(huán)數(shù)
origin_num = [ x for x in range(start,end+1)]pool.map(xlx, origin_num)os.system('copy /b ' + r'E:\python\xinfadi\nihao\*.ts ' + r'E:\python\xinfadi\new.mp4')
print("合并成功")