写在前面:此博客仅用于参考学习,代码中部分网址已删
准备工作
- python
- burpsuite
视频爬取
视频网址:https://v.qq.com/x/cover/mzc00200xnrv1u5.html
使用h5播放器播放网址内视频,右击选择复制调试信息
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2csEzaE50dFpXTwEleYhnRzwEMW1mY1RzRapnTtxkb5ckYplTeMZTTINGMShUYfRHelRHLwEzX39GZhh2css2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xyayFWbyVGdhd3LcV2Zh1Wa9M3clN2byBXLzN3btg3Pn5GcuITM3UjNxcTM0EDNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
将复制好的调试信息找个js在线解析工具进行解析,解析好的数据如下,发现视频m3u8相关文件地址
对vurl进行解码
访问解码后的网址,可以下载一个m3u8文件,里面保存了视频各片段的位置
burpsuite抓包
(也可使用chrome自带的network进行筛选,但我感觉用不来)
播放正片,并进行拦截,抓包结果如下:
由其中的一个带有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('爬取完毕')
下载完成后如下:
正常播放