【问题标题】:Get HTML source code from browser control embedded in C#从嵌入在 C# 中的浏览器控件获取 HTML 源代码
【发布时间】:2011-03-10 23:27:03
【问题描述】:

我有一个嵌入在 C# windows 应用程序中的浏览器控件。我想获取呈现的 HTML(可能已被 javascript 修改)而不是原始的。

有什么建议吗?

【问题讨论】:

    标签: c# .net winforms webbrowser-control


    【解决方案1】:

    您可以使用WebBrowser.DocumentText 获取并设置 HTML。

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

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

    【讨论】:

    • 还要确保仅在 DocumentCompleted 事件触发后检索文档文本(否则会出现竞争条件)
    • 用于使用mshtml;您需要将 Microsoft.mshtml 添加到您的项目引用中。
    【解决方案2】:

    DocumentText 在内部使用返回原始 HTML 的文档的 IPersistStream 接口。请改用 webBrowser1.Document.DocumentElement.OuterHTML。

    【讨论】:

    • +1 谢谢。我已经更正了我的答案。我会删除它,但您不能删除已接受的答案!
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-06-23
      • 2015-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 2015-02-19
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多