找不到视频地址?手把手抓取网页里的 m3u8
换一种思路找地址
在网页源代码里搜不到 m3u8 很正常——现代页面的视频地址几乎都由脚本在运行时动态请求。与其翻代码,不如直接旁听浏览器自己的网络活动,谁在拉流一目了然。
Network 面板三步定位
- 按
F12唤出开发者工具,切到 Network 标签,顺手勾选 Preserve log(防止页面跳转后记录被清空); - 刷新页面并点播视频,让请求流水跑起来;
- 在过滤框输入
m3u8,通常会出现一个主列表加若干子列表。
过滤词与 MIME 类型对照
过滤不到时放宽关键词:搜 .ts 找分片,搜 index、playlist、manifest 找清单文件。判断一个请求是不是播放列表,看响应头最靠谱——Content-Type 为 application/vnd.apple.mpegurl 或 application/x-mpegURL 的就是它。典型的主播放列表长这样:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=2149280,RESOLUTION=1280x720
720p/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=986000,RESOLUTION=640x360
360p/index.m3u8
右键这条请求选择 Copy → Copy link address,完整地址就进了剪贴板。个别站点把清单藏在 JSON 接口里返回,此时到 Response 里按 m3u8 再搜一次即可。
三个常见坑
- 相对路径:清单里写的是子目录地址,抓取时别丢了协议与域名;
- 临时签名:含 token、expire 字段的链接离开当前会话可能失效,抓到后尽快使用;
- 主清单与子清单:满是
#EXT-X-STREAM-INF行的是多码率主清单,实际播放的是它下面列出的子清单,两者都能用,但子清单更直接。
拿到地址之后
粘进 M3U8Lab 在线播放器 试播一下,能出画面说明地址有效;要保存成文件,看 四条转 MP4 路线。最后提醒:抓取行为请仅用于自有内容或已获授权的场景,并遵守源站的服务条款。