Maison > Article > interface Web > Comment récupérer du code HTML généré dynamiquement à partir des contrôles du navigateur Web ?
Comment générer dynamiquement du code HTML à l'aide du navigateur Web .NET ou de mshtml.HTMLDocument ?
Problème :
Récupérer du code HTML généré dynamiquement à partir d'une page Web à l'aide de la classe WebBrowser ou de l'interface mshtml.HTMLDocument peut être un défi. La classe WebBrowser ne parvient pas à capturer le HTML rendu et mshtml.HTMLDocument renvoie du HTML brut qui diffère du contenu réel de la page.
Solution :
Utilisation de WebBrowser Classe :
Bien que la classe WebBrowser ne fournisse pas de méthode directe pour obtenir le HTML rendu, il est possible d'implémenter une solution de contournement. Ajoutez un contrôle WebBrowser à un formulaire, faites-le accéder à l'URL souhaitée, puis suivez les étapes suivantes pour récupérer le code HTML :
Utilisation de l'interface mshtml.HTMLDocument :
Considérations supplémentaires :
Exemple de code :
<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>
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!