python - 如何从 URL 中找到 .m3u8 文件并下载它

标签 python web-scraping m3u8

我正在尝试从给定的网站 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 才能从视频中获取网络请求。

关于python - 如何从 URL 中找到 .m3u8 文件并下载它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61713238/

相关文章:

python - BeautifulSoup 选择具有特定类的某些元素中的所有 href

python - 我如何使用 python web-scraping 从 html 代码中读取这些单元格?

python - 条件语句在我的抓取工具中表现得很奇怪

xbmc - 正确格式化 m3u 播放列表

iframe - HTTP 实时流式传输 (m3u8) I 帧位置

python - Pandas:如果 A 列包含 "y",则有条件地将子字符串 +"z" "x"附加到 B 列

python - 为什么我的 scikit 学习 HashingVectorizo​​r 给我 float binary = True 集?

javascript - contrib hls js 跳过 m3u8 的部分内容,如何防止这种情况

python - 局部变量与全局变量, 'name '示例'未定义

python - 如何评估用于降维的自动编码器