ホームページ > バックエンド開発 > C++ > .NET を使用して動的に生成された HTML コンテンツを効果的に取得するにはどうすればよいですか?

.NET を使用して動的に生成された HTML コンテンツを効果的に取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-15 10:42:48
オリジナル
336 人が閲覧しました

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 コントロールが最新の HTML5 機能をサポートするように、WebBrowser レジストリ キーを構成します。
  2. ページをロードして完了を監視します: WebBrowser コントロールを使用して URL に移動し、DocumentCompleted イベントを処理します。
  3. ポーリングの実装: ポーリング メカニズム (例: documentElement.outerHTML を定期的にチェックする) を使用して、ページのレンダリング時に HTML コンテンツの変更を検出します。
  4. ポーリングの終了: ページのレンダリングが完了したら、ポーリングを停止します (WebBrowser.IsBusy をチェックするか、documentElement.outerHTML にそれ以上の変更がないことによって決定されます)。

この洗練されたアプローチは、完全にレンダリングされた動的 HTML コンテンツをキャプチャするためのより信頼性の高い方法を提供します。 この改良された技術により、.NET アプリケーションと Web ページの対話機能が強化されます。

以上が.NET を使用して動的に生成された HTML コンテンツを効果的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート