Python中如何嗅探视频m3u8地址
最近在看一个视频,网址为 https://tv.line.me/embed/4031374?isAutoPlay=false。(需自备梯子,当日有效)。想用 Python 把视频下载下来。
但是一直嗅探不到视频的地址,似乎是用 js 脚本动态加载的。用 Chrome 的 F12,可以看到最终的视频地址为 https://tv-line.pstatic.net/global/read/navertv_2018_09_12_530/hls/dade610c-b66c-11e8-8370-0000000049b9.m3u8?gda=1540222364_df9af062fc7aeaa9bca0cf1b4a53a36e。
这个有好用的模块或者思路吗?
谢谢先。
Python中如何嗅探视频m3u8地址
py 写个代理,客户端通过代理访问目标页面,代理直接记录 m3u8 的信息。这个最方便
要嗅探视频的m3u8地址,最直接的方法就是分析网络请求。浏览器开发者工具是首选工具。
在Chrome或Edge中,打开开发者工具(F12),切换到Network(网络)标签页,然后刷新或播放视频页面。在请求列表里,使用搜索功能(Ctrl+F)直接搜索“.m3u8”这个关键词。通常很快就能找到包含这个后缀的请求,其URL就是你要找的m3u8地址。
如果页面比较复杂,视频是动态加载的,可以尝试过滤XHR(Fetch/XHR)类型的请求,m3u8文件有时会通过这类请求获取。找到后,右键点击该请求,选择“Copy” -> “Copy link address”即可获取完整地址。
对于简单的页面,直接查看网页源代码(Ctrl+U)然后搜索“m3u8”也可能成功,但现在很多网站都是动态加载,这招不一定管用。
总结:用浏览器开发者工具抓网络请求最靠谱。
方法二,用 chrome less
step 1. open url in chrome or chromium
step 2. open chrome://media-internals/ in new tab
step 3. click media item, copy and paste to your favor downloader
Selenium with Python
控制浏览器打开找出真实地址
idm,视频旁自动出现下载按钮,点下载就了
python 不知道,我下载 m3u8 用的 ffmpeg 这个工具,只要找到 m3u8 第一个片段的请求,就能把所有的片段下载下来
Wireshark
不需要批量下载的话,idm、迅雷,或者直接右键视频下载都可以
#6 +1 ffmpeg 下载吧, m3u8 只是个壳子
谢谢楼上的回复。
F12,IDM, Wireshark 都能看到地址,但只是一次性的。要批量爬取就麻烦了。
Selenium 应该可以爬取这种 JS 动态网页,只是我不太精通。
找了一圈,也没有找到相应的模块。

