我有一个使用AJAX查询显示一些数据的网页。我需要在C程序中分析一些数据。
问题是,当我查看网页的源代码时,这并没有显示数据,因为这是由AJAX脚本自动生成并修改DOM的。
如果我选择了网页上的所有内容并用Chrome做了“检查元素”,那么我就有了完整的HTML代码,其中包含了要提取的数据,这些数据位于不同的表中。
我尝试的是做一个webBrowser1.Navigate("www.site.com"),然后在我的webBrowser1_DocumentCompleted()事件中,我要做的是:
var name = webBrowser1.Document.GetElementById("table_1_r_7_c_2");
问题是webBrowser1没有返回完整的HTML代码,因为有些代码是由AJAX查询生成的。
有人知道我怎样才能在C#里做到这一点吗?

最佳答案

DocumentCompleted事件有点误导人,因为它还会为页面上的每个AJAX请求触发。您可以这样做来检查加载的是实际的页面,还是其他一些变量来查找特定的请求。

  private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
       if (e.Url.AbsolutePath == webBrowser1.Url.AbsolutePath)
       {
          // page loaded
       }
    }

关于c# - 用不断更新的C#解析HTML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33277353/

10-11 23:27