我有代码,我使用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做同样的事情?
答案 0 :(得分:2)
您可以使用JavaScript:
var data = (string)webView.EvalScript("document.body.outerHTML");
答案 1 :(得分:0)
不,HttpWebRequest
(和其他类似的“让我回复HTML”)方法只会为您提供HTML本身,并且不会在页面上运行JavaScript。
对于动态HTML的服务器端处理,请考虑使用正确的headless internet browser?而不是试图说服常规IE在没有UI的情况下正常工作。
答案 2 :(得分:0)
eo.webbrowser运行像chrome这样的多进程,并且不受许多云服务环境的支持。
只需使用WebClient或HttpWebRequest或RestSharp等可以执行http请求来获取响应html。