我正在尝试从给定的网站 URL 查找并下载 m3u8 文件。我该怎么做呢?我查看了页面源代码,但找不到任何 m3u8 文件的链接,尽管我可以看到发送网络 GET 请求以在 Chrome 的开发工具网络选项卡中下载 m3u8 文件。
那么有人知道如何从给定的网站 URL 检测链接到 m3u8 文件的 URL 以及如何下载它吗?
.m3u8
和 .mpd
链接是特殊元素,不是 HTML 的一部分。
您可以在网络请求中找到它们,通常它们会在您单击视频上的播放按钮后出现。它们用于分段传输内容,而不是让您访问视频文件。
这是我使用 Selenium 一段时间来检索它们的片段。它不适用于 100% 的情况,但它在许多网站上仍然有效:
JS_get_network_requests = "var performance = window.performance || window.msPerformance || window.webkitPerformance || {}; var network = performance.getEntries() || {}; return network;"
network_requests = driver.execute_script(JS_get_network_requests)
for n in network_requests:
if ".m3u8" in n["name"]:
print(n["name"])
附注如果视频嵌入在 iframe 中,则必须切换到 iframe 才能从视频获取网络请求。