2015-02-23 291 views
0

我有到位的代码我使用EO.WebBrowser使用EO.WebView请求获得来自网页的HTML,其中:C#更快地获取JavaScript DOM比EO.WebBrowser

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

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

对于动态HTML的服务器端处理,请考虑使用正确的headless internet browser?,而不是试图说服普通IE在没有UI的情况下正常工作。

+0

谢谢,我会尝试Awesomium,看看它是否更好。 – Rexfelis 2015-02-23 15:56:25

1

您可以使用JavaScript:

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

的eo.webbrowser许多云服务环境中运行的多进程Chrome和不支持的。

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