2012-07-15 128 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(這樣你就可以在沒有任何弄亂的情況下得到響應)。

在瀏覽器控件中禁用腳本也可能做你需要的一切 - 但由於你沒有給我們第一個使用瀏覽器控件的原因,這可能沒有幫助...