C# 获得 javascript DOM 比 EO.WebBrowser 更快的方法

C# Faster way to get javascript DOM than EO.WebBrowser

我在使用 EO.WebBrowser 从使用 EO.WebView 请求的页面获取 html 的地方有代码:

var cookie = new EO.WebBrowser.Cookie("cookie", "value");
cookie.Path = path;
cookie.Domain = domain;

var options = new BrowserOptions();
options.EnableWebSecurity = false;
Runtime.SetDefaultOptions(options);

var request = new Request(url);
request.Cookies.Add(cookie);

webView.LoadRequestAndWait(request);

最后我使用以下方法得到我需要的 HTML:

webView.GetDOMWindow().document.body.outerHTML

我的问题是这非常慢,虽然我可以在本地将其传输到 运行,但我无法在 Azure 服务器代码上将其传输到 运行。有没有办法使用 HttpWebRequest 做同样的事情?

不,HttpWebRequest(和其他类似的 "get me HTML response")方法只会给您 HTML 本身,不会在页面上 运行 JavaScript。

对于动态 HTML 的服务器端处理,考虑使用适当的 headless internet browser? 而不是试图说服常规 IE 在没有 UI.

的情况下正常工作

您可以使用 JavaScript:

var data = (string)webView.EvalScript("document.body.outerHTML");

eo.webbrowser 像 chrome 一样运行多进程,并且不受许多云服务环境的支持。

只需使用 WebClient 或 HttpWebRequest 或 RestSharp 或类似的东西可以做 http 请求来获得响应 html。