我在C#windows应用程序中嵌入了浏览器控件。我想抓取渲染的HTML(可以通过javascript修改)而不是原始的。
有什么建议吗?
答案 0 :(得分:7)
您可以使用 WebBrowser.DocumentText
获取HTML,并确实设置它。
Sheng是正确的,DocumentText
在脚本运行之前返回流式文档。他的代码没有编译,但它基本上是正确的。我发现你需要:
mshtml.HTMLDocument doc = webBrowser1.Document.DomDocument as mshtml.HTMLDocument;
string html = doc.documentElement.outerHTML;
答案 1 :(得分:6)
DocumentText在内部使用文档的IPersistStream接口,该接口返回原始HTML。请改用webBrowser1.Document.DocumentElement.OuterHTML。
答案 2 :(得分:1)
向WebBrowser添加Navigated事件。只有这样才能填写您的文件。
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
Console.WriteLine(webBrowser1.DocumentText);
}