python爬取网页视频

提示:本文主要是方便理解音频信息和网站信息,不可实现跳过vip功能等(相关代码在文末)

我们先了解和获取网站和视频的相关内容,我以某视频的某动漫为例:

1.打开一个视频网页版,搜索,选择其中的某一集

                        ​​​​​​​        

2.鼠标右键,检查

                                

3.打开网络,点击Ctrl+R刷新一下,然后搜索.m3u8文件 

        .m3u8 文件是一种扩展名为 .m3u8 的播放列表文件,它是基于M3U(Multimedia Playlist)格式的一种变种,专门用于HTTP Live Streaming (HLS)。HLS是由Apple公司开发的一种流媒体传输协议,广泛应用于各种在线视频平台,包括腾讯视频。

        HLS将视频分成多个小的片段(通常是几秒钟的TS文件),每个片段单独传输。这种分段传输方式可以提高视频加载速度和播放流畅度,尤其是在网络不稳定的情况下。.m3u8 文件包含了这些片段的URL列表,客户端可以根据这个列表依次请求和播放这些片段。

        .m3u8 文件的结构一个典型的 .m3u8 文件可能包含以下部分:

        1. 文件头:#EXTM3U
        2. 版本信息:#EXT-X-VERSION:3
        3. 媒体序列号:#EXT-X-MEDIA-SEQUENCE:0
        4. 目标持续时间:#EXT-X-TARGETDURATION:14
        5. 播放列表类型:#EXT-X-PLAYLIST-TYPE:VOD   ---VOD(点播)或LIVE(直播)。

        6. 片段信息:#EXTINF:12.000,
00_gzc_1000102_0b53nyaawaaaoaadnzvxoftma3wdbnuaad2a.f321002.1.ts?index=0&start=0&end=12000&brs=0&bre=310387&ver=4&token=b40e852a52561c8c29085752e05314fc
        7. 结束标记:#EXT-X-ENDLIST

4.选择proxyhttp目录里的,然后点击.m3u8,可以看到相关文件路径 ,然后复制.m3u8文件的URL,一直复制到前面的https:

 

 可以在浏览器中复制下载这个文件,然后用记事本打开就是这种

5.根据上述文件然后根据第三步的文件信息,然后我们筛选我们需要的文件信息 。如此可以开始我们的爬虫代码。

        所需安装的库:

        1. requestsrequests 是一个用于发送HTTP请求的库,非常方便易用。

                 安装命令:pip install   requests
        2. tqdmtqdm 是一个用于显示进度条的库,可以提升用户体验。

                安装命令:pip install tqdm
        3. re 和 osre 和 os 是Python标准库的一部分,不需要额外安装。

        移除注释行:

        m3u8_text: 使用正则表达式移除m3u8文本中的注释行(以#E开头的行)

        

m3u8_text = re.sub('#E.*', ' ', m3u8_text)

        切割前缀:

        sub_ts: 从目标URL中提取出公共前缀部分,用于构建每个ts片段的完整URL

sub_ts = url.split("gzc")[0]

 最后给出完整代码:

import requests
import re
from tqdm import tqdm
import os

# 目标URL
url = "https://defaultts.tc.qq.com/moviets.tc.qq.com/A7BbbkmgC6HOXhaS7bd09U9CsnBo-igDf-5p4lipX_dU/B_MWKVMPpbmmy3lFOlyMFQVRto0KEsMegLKMuugZmx45-QxycrqwccKm9cysd3eR8-/svp_50112/jNUu6S7FmevMZANwF9cMXaYlIgsEt6mT0HaIR3gVFZl5SPnHcDwJi68dZCyMWI1i-l8wPfQNbSCkTBuw-QT86i_2DUJDnYkCES7FU6yddrNH0rvurDZT14pf-mP8rLI-JqKgWmIZIMbCvSn7efj2vLYs9CzSX074--FRC3M9ZfPAyPvlonOUJyL_9kh_7uu_6dPmseLxl7r8gdto-IpTstfxFyxHjfLdQ0HMaE5w-0PEmxB9OKoZAw/gzc_1000102_0b5354aaqaaa3yaiilvupftmb36dbduqadca.f321003.ts.m3u8"

# 切割前缀
sub_ts = url.split("gzc")[0]

# 指定保存文件的路径
save_path = "D:下载的动漫.mp4" #在此加入想保存的文件路径

# 1. 访问目的地址
response = requests.get(url)
m3u8_text = response.text

# 移除注释行
m3u8_text = re.sub('#E.*', ' ', m3u8_text)

# 分割成TS文件列表
ts_list = m3u8_text.split()

# 下载并合并TS文件
with open(save_path, mode='wb') as f:
    for ts in tqdm(ts_list):
        ts_url = sub_ts + ts
        ts_data = requests.get(ts_url).content
        f.write(ts_data)

print(f"下载完成,文件已保存到: {save_path}")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值