gpt4 book ai didi

c# - 从网站获取 "real"HTML 源

转载 作者:行者123 更新时间:2023-11-30 20:03:32 25 4
gpt4 key购买 nike

所以,我遇到了一个问题,即我最喜欢的广播电台在我开车时播放一首我不知道的歌曲。他们没有一个页面显示他们播放过的歌曲列表;但是,他们的网站上确实有一个“正在播放”部分,显示当前正在播放的内容和播放者。所以,我正在尝试编写一个小程序,每 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();
}

本质上,我将它加载到 WebBrowser 中并尝试以这种方式获取源代码。但是在运行 javascript 之后我仍然没有得到这个部分。有没有办法在事后实际检索呈现的 HTML?

编辑

此外,WebBrowser 中是否有允许脚本运行的方法?我收到弹出窗口,询问我是否要允许它们运行。我不想压制它们,我需要它们运行。

最佳答案

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

关于c# - 从网站获取 "real"HTML 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14835228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com