如何使用.NET的WebBrowser或mshtml.HTMLDocument动态生成HTML代码?
问题:
使用 WebBrowser 类或 mshtml.HTMLDocument 接口从网页检索动态生成的 HTML 代码可能是一个挑战。 WebBrowser 类无法捕获渲染的 HTML,并且 mshtml.HTMLDocument 返回与实际页面内容不同的原始 HTML。
解决方案:
使用 WebBrowser类:
虽然 WebBrowser 类没有提供获取渲染 HTML 的直接方法,但可以实现一种解决方法。将 WebBrowser 控件添加到表单,让它导航到所需的 URL,然后使用以下步骤检索 HTML:
使用 mshtml.HTMLDocument 接口:
其他注意事项:
示例代码:
<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>
以上是如何从 Web 浏览器控件检索动态生成的 HTML 代码?的详细内容。更多信息请关注PHP中文网其他相关文章!