2012-07-15 73 views
-1

我刮了网页,当我在IE 8的Windows XP盒子上运行我的刮板应用程序(这是Windows XP的最大支持)时,它会从webBrowser.Body.OuterHtml返回不同的HTML源代码,而不是在Windows 7上运行时IE9。有谁知道如何从网页浏览器控制得到未修改的原始html?我知道IE修改HTML,所以我想知道如何获得从Web服务器返回的原始HTML。这很烦人,因为我在我的Windows 7开发盒上写了刮刀,然后当我将它放在Windows XP盒子上时,它不起作用。如果你回答不要告诉我使用WebClient并下载页面,我想轻松地支持浏览页面,而不必担心其他网页浏览器控制的小网页内容。我使用webbrowser控件是有原因的。 webBrowser.DocumentText是否返回原始html还是这个仍然修改的html是IE?.net WebBrowser控件修改html?

+0

你看过兼容性和怪癖模式吗? http://stackoverflow.com/questions/2055271/webbrowser-control-ie8-compatibility-mode-on-off-switch,http://stackoverflow.com/questions/646742/how-to-programmatically-turn-off- quirks-mode-in-ie8-webbrowser-control – 2012-07-15 07:11:30

+0

看起来你的问题是“我知道如何使用WebClient从服务器上下载页面,但我不想这样做,请告诉我一种使用WebBrowser专为向用户显示网页而设计,不适用于向程序员提供原始HTML,以从服务器获取原始HTML。“为什么厌恶WebClient? – 2012-07-15 07:12:49

+0

我使用webbrowser控件来处理cookie,会话,所以我可以填写输入字段并使用POST提交,还可以更轻松地处理分页链接等。 – kyleb 2012-07-15 16:12:42

回答

2

从根本上说你有两个对立的担忧:

  • 你想要得到的原始来源,任何未经修改的浏览器可以做
  • 你想要让浏览器做的事情,因为你明显地发现它有用。 (你说你正在使用WebBrowser“的一个原因”,但你并没有真正告诉我们,是什么原因。)

如果你真的需要使用WebBrowser出于某种原因,你可能想要两次抓取每个页面:一次在浏览器中(以便它可以做任何你需要的),一次用WebClient(这样你就可以在没有任何弄乱的情况下得到响应)。

在浏览器控件中禁用脚本也可能做你需要的一切 - 但由于你没有给我们第一个使用浏览器控件的原因,这可能没有帮助...