首頁 > 後端開發 > C++ > 如何使用 .NET 有效檢索動態產生的 HTML 內容?

如何使用 .NET 有效檢索動態產生的 HTML 內容?

Mary-Kate Olsen
發布: 2025-01-15 10:42:48
原創
335 人瀏覽過

How Can I Effectively Retrieve Dynamically Generated HTML Content Using .NET?

在 .NET 應用程式中檢索動態 HTML

許多開發人員很難使用 .NET 檢索動態產生的 HTML 內容。 常見的方法,例如使用 System.Windows.Forms.WebBrowsermshtml.HTMLDocument COM 接口,通常都達不到要求。

標準方法的限制

System.Windows.Forms.WebBrowser 類別和 mshtml.HTMLDocument 介面提供的功能不足以捕捉動態載入的 HTML。 以下程式碼範例說明了此限制:

使用 System.Windows.Forms.WebBrowser 的範例:

<code class="language-csharp">WebBrowser wb = new WebBrowser();
wb.Navigate("https://www.google.com/#q=where+am+i");

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

Form f = new Form();
f.Controls.Add(wb);
Application.Run(f);</code>
登入後複製

使用 mshtml.HTMLDocument 的範例:

<code class="language-csharp">mshtml.IHTMLDocument2 doc = (mshtml.IHTMLDocument2)new mshtml.HTMLDocument();
doc.write(new System.Net.WebClient().DownloadString("https://www.google.com/#q=where+am+i"));

foreach (IHTMLElement e in doc.all)
{
    System.Diagnostics.Debug.WriteLine(e.outerHTML);
}</code>
登入後複製

兩個範例都無法捕捉完整的動態呈現的 HTML。

更強大的解決方案

檢索動態產生的 HTML 的更有效策略涉及以下步驟:

  1. 啟用增強型 HTML 渲染: 設定 FEATURE_BROWSER_EMULATION 登錄項目以確保 WebBrowser 控制項支援現代 HTML5 功能。
  2. 載入頁面並監控完成情況:使用WebBrowser控制項導覽至URL並處理DocumentCompleted事件。
  3. 實作輪詢:採用輪詢機制(例如定期檢查documentElement.outerHTML)來偵測頁面呈現時 HTML 內容的變化。
  4. 終止輪詢:頁面渲染完成時停止輪詢(透過檢查WebBrowser.IsBusydocumentElement.outerHTML中沒有進一步更改來確定)。

這種改進的方法提供了一種更可靠的方法來捕捉完全渲染的動態 HTML 內容。 這種改進的技術增強了 .NET 應用程式與網頁的互動能力。

以上是如何使用 .NET 有效檢索動態產生的 HTML 內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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