首頁 > 後端開發 > C++ > 如何使用 WebBrowser 或 MSHTML 在 C# 中動態產生 HTML 程式碼?

如何使用 WebBrowser 或 MSHTML 在 C# 中動態產生 HTML 程式碼?

Susan Sarandon
發布: 2025-01-15 07:03:47
原創
724 人瀏覽過

How to Dynamically Generate HTML Code in C# Using WebBrowser or MSHTML?

C#中使用WebBrowser或MSHTML動態產生HTML程式碼

本文將探討兩種不同的方法來產生HTML程式碼:

1. 使用System.Windows.Forms.WebBrowser類別

這種方法很簡單,但也有限制。要檢索網頁的HTML程式碼:

<code class="language-csharp">[STAThread]
public static void Main()
{
    WebBrowser wb = new WebBrowser();
    wb.Navigate("https://www.example.com/");

    wb.DocumentCompleted += (sender, e) =>
    {
        mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)wb.Document.DomDocument;
        foreach (IHTMLElement element in doc.all)
        {
            Console.WriteLine(element.outerHTML);
        }
    };

    Application.Run(wb);
}</code>
登入後複製

這段程式碼導覽到指定的URL,文件載入後,它迭代DOM元素以提取HTML程式碼。

然而,這種方法有缺點:它很慢,有時無法檢索完整的HTML,並且不適合使用AJAX呼叫的動態網頁。

2. 使用mshtml.HTMLDocument介面

此方法使用Microsoft HTML物件庫程式集中的mshtml.HTMLDocument介面。它包括:

<code class="language-csharp">public static void Main()
{
    mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)new mshtml.HTMLDocument();
    doc.write(new System.Net.WebClient().DownloadString("https://www.example.com/"));

    foreach (IHTMLElement element in doc.all)
    {
        Console.WriteLine(element.outerHTML);
    }
}</code>
登入後複製

這段程式碼下載網頁的HTML程式碼,將其載入到HTML文件中,並迭代DOM元素以擷取HTML程式碼。

重要注意事項:

  • 考慮使用async/await使程式碼更具回應性。
  • 設定瀏覽器模擬以確保與現代Web標準的兼容性。
  • 使用輪詢機制來檢查頁面渲染完成情況,因為動態產生的內容可能需要一段時間才能出現。
  • 添加異常處理以優雅地處理錯誤。

以上是如何使用 WebBrowser 或 MSHTML 在 C# 中動態產生 HTML 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板