天天看点

使用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爬取视频