从网站获取"真正的"HTML源代码

Pio*_*nom 2 c# winforms

所以,我遇到了一个问题,我最喜欢的广播电台在我开车时播放一首我不认识的歌.他们没有一个页面显示他们播放的歌曲列表; 然而,他们在他们的网站上有一个"正在播放"部分,显示当前正在播放的内容和由谁播放.所以,我正在尝试编写一个小程序,它会在2分钟内浏览网站,以检索歌曲和艺术家的名字.使用Chrome开发工具,我可以在源代码中看到歌曲标题和艺术家.但是当我查看页面源时,它并没有显示出来.他们正在使用javascript来运行显示该信息.我尝试过以下方法:

private void button1_Click(object sender, EventArgs e)
{
    webBrowser1.Navigate(@"http://www.thebuzz.com/main.html");

    webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
}

private void webBrowser1_DocumentCompleted(object sender,
                                 WebBrowserDocumentCompletedEventArgs e)
{
    do
    {
         // Do nothing while we wait for the page to load
    }
    while (webBrowser1.ReadyState == WebBrowserReadyState.Loading);

    var test = webBrowser1.DocumentText;
    textBox1.Text = test.ToString();
}
Run Code Online (Sandbox Code Playgroud)

从本质上讲,我正在加载它WebBrowser并尝试以这种方式获取源代码.但是在javascript运行之后我还没有得到它.有没有办法在事实之后实际检索呈现的HTML?

编辑

另外,有一种方法WebBrowser允许脚本运行吗?我得到弹出窗口询问我是否要允许它们运行.我不想压制它们,我需要它们来运行.

ana*_*der 7

正如Jay Tomten在评论中所说,你正试图解决问题的结果,而不是原因.问题的原因是他们使用Javascript来更新页面的那一部分.不要通过让Javascript进行更新然后阅读它所写的内容来解决这个问题,而是要问问自己Javascript从哪里获取信息以及是否可以去同一个地方.打开可以让您看到网络流量的内容 - 例如,Fiddler或Chrome的开发控制台.观察POST电话.其中一个可能是一个AJAX请求,其中页面上的Javascript获取当前歌曲.记下URL,检查调用以查看它发送的参数以及它返回的数据.您可以使用Postman或类似的东西来组装POST请求,并弄清楚该站点上的Javascript如何获取其数据,然后编写一些代码来自己调用该URL并解析返回的内容.