C#Webbrowser控件,显示的内容与Document.innerHtml不匹配

时间:2019-03-09 14:29:59

标签: c# html windows forms

因此,我有一个网站,可将其加载到表单的webbrowser控件中。加载文档后,我将检索webbrowser.documenttext。我在这里解析特定的表。但是我没有在这里找到表格,但是我发现它已经在表单浏览器中消失了。

我告诉您,这个特定的表格已由已加载的javascript代码加载/附加到doc。 当我右键单击并选择“查看源代码”时,它将使用正确的html弹出文档。

我的问题是如何获取ViewSource引用的同一文档,或者有什么方法可以获取文档在表单上呈现的内容?

2 个答案:

答案 0 :(得分:0)

不是使用Webbrowser Control,而是使用HtmlAgilityPackage根据您的需要解析数据。

 var html = new HtmlDocument();
html.LoadHtml(new WebClient().DownloadString("http://www.asp.net")); 
var root = html.DocumentNode;
var commonPosts = root.Descendants().Where(n => n.GetAttributeValue("class", 
"").Equals("common-post"));

答案 1 :(得分:0)

Similar Existing Question

上述问题与我的问题非常相似,在仔细回答之后,我得知我需要以某种方式等待并浏览Web浏览器以获取动态内容。

我并没有真正实现答案中提供的代码,但是我将documentCompleted事件更改为异步,并提供了5s的等待任务延迟

private async void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        await Task.Delay(5000);
        var html= wb.Document.GetElementsByTagName("HTML")[0].OuterHtml;
    }

现在,我得到了动态结果。谢谢,我现在有感觉。