ホームページ > バックエンド開発 > 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?

WebBrowser または MSHTML を使用して C# で HTML コードを動的に生成します

この記事では、HTML コードを生成する 2 つの異なる方法について説明します。

1. System.Windows.Forms.WebBrowser クラスを使用します

この方法は簡単ですが、制限もあります。 Web ページの 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 呼び出しを使用する動的な Web ページには適していません。

2. mshtml.HTMLDocument インターフェイスを使用します

このメソッドは、Microsoft HTML Object Library アセンブリの 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>
ログイン後にコピー

このコードは、Web ページの HTML コードをダウンロードして HTML ドキュメントに読み込み、DOM 要素を反復処理して HTML コードを抽出します。

重要な注意事項:

  • コードの応答性を高めるために、async/await の使用を検討してください。
  • ブラウザのエミュレーションを設定して、最新の Web 標準との互換性を確保します。
  • 動的に生成されたコンテンツは表示されるまでに時間がかかる場合があるため、ポーリング メカニズムを使用してページのレンダリングの完了を確認します。
  • エラーを適切に処理するために例外処理を追加します。

以上がWebBrowser または MSHTML を使用して C# で HTML コードを動的に生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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