.NET の WebBrowser または mshtml.HTMLDocument を使用して HTML コードを動的に生成する方法?
問題:
WebBrowser クラスまたは mshtml.HTMLDocument インターフェイスを使用して、動的に生成された HTML コードを Web ページから取得するのは困難な場合があります。 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 中国語 Web サイトの他の関連記事を参照してください。