我基本上试图获取m3u8文件的链接。当页面首次加载时,它会向m3u8文件请求一个每天更改的秘密令牌。如果完全加载页面,则下载文件。我可以在网络选项卡上使用chrome开发人员工具查看它。由于这个令牌是动态生成的,我需要先让网站请求这个文件,然后给我一个文件的URL,包括令牌(类似http://secret-website.com/file?token=342782g1bud1)。
我从未使用过硒,所以我想知道如果可能的话我该如何做到这一点。我需要使用python或c#以编程方式执行此操作。
答案 0 :(得分:1)
我找到了一个等待直到找到.m3u8文件的解决方案。我使用fiddlecore作为代理,所以我可以看到浏览器发送的内容。这将让我捕获任何请求,如果请求包含.m3u8,它将只打印出URL(我需要)。请注意,这不适用于https,因为fiddlecore需要认证(我想这很容易修复)。这是一个简单的工作代码。
bool close = false;
// - Initialize fiddler for http proxy
Fiddler.FiddlerApplication.Startup(5000, true, false);
Fiddler.FiddlerApplication.BeforeResponse += delegate(Session s)
{
string path = s.fullUrl;
if (path.Contains("720p.m3u8"))
{
Console.WriteLine(path);
close = true;
}
};
// - Create a selenium proxy
var seleniumProxy = new OpenQA.Selenium.Proxy { HttpProxy = "localhost:5000"};
var profile = new FirefoxProfile();
profile.SetProxyPreferences(seleniumProxy);
// - Initialize selenium for browser automation
IWebDriver driver = new FirefoxDriver(profile);
driver.Navigate().GoToUrl("http://www.asite");
while (!close) { }
driver.Quit();
Fiddler.FiddlerApplication.Shutdown();