Maison > développement back-end > C++ > Comment générer dynamiquement du code HTML en C# à l'aide d'un navigateur Web ou de MSHTML ?

Comment générer dynamiquement du code HTML en C# à l'aide d'un navigateur Web ou de MSHTML ?

Susan Sarandon
Libérer: 2025-01-15 07:03:47
original
724 Les gens l'ont consulté

How to Dynamically Generate HTML Code in C# Using WebBrowser or MSHTML?

Utilisez WebBrowser ou MSHTML pour générer dynamiquement du code HTML en C#

Cet article explorera deux méthodes différentes pour générer du code HTML :

1. Utilisez la classe System.Windows.Forms.WebBrowser

Cette méthode est simple, mais elle a aussi des limites. Pour récupérer le code HTML d'une page web :

<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>
Copier après la connexion

Ce code accède à l'URL spécifiée et une fois le document chargé, il parcourt les éléments DOM pour extraire le code HTML.

Cependant, cette approche présente des inconvénients : elle est lente, ne parvient parfois pas à récupérer le HTML complet et n'est pas adaptée aux pages Web dynamiques utilisant des appels AJAX.

2. Utilisez l'interface mshtml.HTMLDocument

Cette méthode utilise l'interface mshtml.HTMLDocument dans l'assembly Microsoft HTML Object Library. Il comprend :

<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>
Copier après la connexion

Ce code télécharge le code HTML de la page Web, le charge dans un document HTML et parcourt les éléments DOM pour extraire le code HTML.

Remarques importantes :

  • Envisagez d'utiliser async/await pour rendre votre code plus réactif.
  • Définissez l'émulation du navigateur pour garantir la compatibilité avec les normes Web modernes.
  • Utilisez un mécanisme d'interrogation pour vérifier l'achèvement du rendu de la page, car le contenu généré dynamiquement peut mettre un certain temps à apparaître.
  • Ajoutez la gestion des exceptions pour gérer les erreurs avec élégance.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal