我有一个使用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#中实现这种行为?
答案 0 :(得分:0)
DocumentCompleted
事件有点误导,因为它也会触发页面上的每个AJAX请求。您可以执行以下操作来检查它是否是加载的实际页面,或其他变体以查找特定请求。
private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.AbsolutePath == webBrowser1.Url.AbsolutePath)
{
// page loaded
}
}