如何使用.NET的WebBrowser或mshtml.HTMLDocument動態產生HTML程式碼?
問題:
使用 WebBrowser 類別或 mshtml.HTMLDocument 介面從網頁擷取動態產生的 HTML 程式碼可能是一個挑戰。 WebBrowser 類別無法擷取渲染的 HTML,且 mshtml.HTMLDocument 傳回與實際頁面內容不同的原始 HTML。
解決方案:
使用WebBrowser類別:
雖然WebBrowser 類別沒有提供直接擷取方法,但HTML 的直接渲染方法可以實現一種解決方法。將 WebBrowser 控制項新增至表單,讓它導覽至所需的 URL,然後使用下列步驟檢索 HTML:
使用 mshtml.HTMLDocument 介面:
其他注意事項:
範例程式碼:
<code class="C#">using Microsoft.Win32; using System; using System.Threading; using System.Threading.Tasks; using mshtml; public async Task<string> LoadDynamicPage(string url, CancellationToken token) { var doc = new HTMLDocument(); doc.write(new System.Net.WebClient().DownloadString(url)); // Poll for changes in HTML snapshot var html = doc.documentElement.outerHTML; while (true) { await Task.Delay(500, token); var htmlNow = doc.documentElement.outerHTML; if (html == htmlNow) break; html = htmlNow; } return html; }</code>
以上是如何從 Web 瀏覽器控制項檢索動態產生的 HTML 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!