在C#中解析HTML,不断更新

时间:2015-10-22 09:11:29

标签: c# html ajax web-scraping

我有一个使用AJAX查询显示一些数据的网页。我需要在C#程序中解析一些这些数据。

问题是,当我查看我的网页的源代码时,这并没有显示数据,因为这是由AJAX脚本自动生成并修改DOM。

如果我选择网页上的所有内容并执行" Inspect Element"使用Chrome,我有完整的HTML代码,其中包含我想要提取的各种表格中的数据。

我尝试过的是webBrowser1.Navigate("www.site.com"),然后在webBrowser1_DocumentCompleted()事件中,我这样做了:

var name = webBrowser1.Document.GetElementById("table_1_r_7_c_2");

问题是webBrowser1没有返回完整的HTML代码,因为某些代码是由AJAX查询生成的。

有谁知道如何在C#中实现这种行为?

1 个答案:

答案 0 :(得分:0)

DocumentCompleted事件有点误导,因为它也会触发页面上的每个AJAX请求。您可以执行以下操作来检查它是否是加载的实际页面,或其他变体以查找特定请求。

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