【发布时间】:2011-03-10 23:27:03
【问题描述】:
我有一个嵌入在 C# windows 应用程序中的浏览器控件。我想获取呈现的 HTML(可能已被 javascript 修改)而不是原始的。
有什么建议吗?
【问题讨论】:
标签: c# .net winforms webbrowser-control
我有一个嵌入在 C# windows 应用程序中的浏览器控件。我想获取呈现的 HTML(可能已被 javascript 修改)而不是原始的。
有什么建议吗?
【问题讨论】:
标签: c# .net winforms webbrowser-control
您可以使用WebBrowser.DocumentText 获取并设置 HTML。
Sheng 是对的,DocumentText 在脚本运行之前返回流式文档。他的代码无法编译,但它基本上是正确的。我发现你需要:
mshtml.HTMLDocument doc = webBrowser1.Document.DomDocument as mshtml.HTMLDocument;
string html = doc.documentElement.outerHTML;
【讨论】:
DocumentText 在内部使用返回原始 HTML 的文档的 IPersistStream 接口。请改用 webBrowser1.Document.DocumentElement.OuterHTML。
【讨论】:
将导航事件添加到您的 WebBrowser。只有这样,您的文件才会被填写。
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
Console.WriteLine(webBrowser1.DocumentText);
}
【讨论】: