当前位置:  开发笔记 > 编程语言 > 正文

C#httpwebrequest和javascript

如何解决《C#httpwebrequest和javascript》经验,为你挑选了2个好方法。

我正在使用C#HttpWebRequest来获取网页的一些数据.问题是在加载页面后使用javascript/ajax更新了一些数据,而我没有在响应字符串中获取它.有没有办法让webrequest等到页面中的所有脚本都已完成执行?

谢谢

阿米特



1> missaghi..:

只是一个想法,但有一种方法让.net加载一个网页,就像它在浏览器中一样:使用System.Windows.Forms

您可以将网页加载到WebBrowser控件中

WebBrowser wb = new WebBrowser();
wb.ScrollBarsEnabled = false;
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); }
wb.Document.DomDocument.ToString()

这可能会给你pre ajax DOM,但也许有办法让它先运行ajax.



2> splattne..:

如果我正确地解释了您的问题,那么您的问题就没有简单的解决方案.

您正在从服务器上抓取HTML,并且由于您的C#代码不是真正的Web浏览器,因此它不会执行客户端脚本.

这样您就无法访问您获取的HTML不包含的信息.

编辑:我不知道这些来自原始网站的AJAX调用有多复杂,但您可以使用Firebug或Fiddler for IE来查看请求是如何进行的,以便在C#应用程序中调用这些AJAX调用.所以你可以添加你需要的信息.但这只是一个理论上的解决方案.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有