2011-03-10 35 views

回答

7

您可以使用 WebBrowser.DocumentText获取HTML,并将其设置为 WebBrowser.DocumentText

Sheng是正确的,DocumentText在脚本运行之前返回流式文档。他的代码不能编译,但它基本上是正确的。我发现,你需要:

mshtml.HTMLDocument doc = webBrowser1.Document.DomDocument as mshtml.HTMLDocument; 
string html = doc.documentElement.outerHTML; 
+3

还要确保该DocumentCompleted事件触发后,只检索文档文本(否则有竞争条件) – Cameron 2011-03-10 23:33:04

+1

我会接受在4分钟内 – Hooch 2011-03-10 23:38:05

+1

使用MSHTML;您需要将Microsoft.mshtml添加到您的项目参考中。 – 2014-10-22 21:36:48

6

DocumentText内部使用文档的IPersistStream接口界面,返回原始的HTML。改为使用webBrowser1.Document.DocumentElement.OuterHTML。

+1

+1谢谢你。我纠正了我的答案。我会删除它,但不能删除已接受的答案! – 2011-03-11 00:46:09

1

添加导航事件到您的WebBrowser。只有这样你的文件才会被填满。

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) 
    { 
     Console.WriteLine(webBrowser1.DocumentText); 
    } 
相关问题