所以,我遇到了一个问题,我最喜欢的广播电台在我开车时播放一首我不认识的歌.他们没有一个页面显示他们播放的歌曲列表; 然而,他们在他们的网站上有一个"正在播放"部分,显示当前正在播放的内容和由谁播放.所以,我正在尝试编写一个小程序,它会在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允许脚本运行吗?我得到弹出窗口询问我是否要允许它们运行.我不想压制它们,我需要它们来运行.
正如Jay Tomten在评论中所说,你正试图解决问题的结果,而不是原因.问题的原因是他们使用Javascript来更新页面的那一部分.不要通过让Javascript进行更新然后阅读它所写的内容来解决这个问题,而是要问问自己Javascript从哪里获取信息以及是否可以去同一个地方.打开可以让您看到网络流量的内容 - 例如,Fiddler或Chrome的开发控制台.观察POST电话.其中一个可能是一个AJAX请求,其中页面上的Javascript获取当前歌曲.记下URL,检查调用以查看它发送的参数以及它返回的数据.您可以使用Postman或类似的东西来组装POST请求,并弄清楚该站点上的Javascript如何获取其数据,然后编写一些代码来自己调用该URL并解析返回的内容.
| 归档时间: |
|
| 查看次数: |
3318 次 |
| 最近记录: |