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>
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>
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 :
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!