2012-01-10 106 views
0

這聽起來很蠢,但我不得不問,因爲我沒有在任何地方找到這個答案。HTML〜Firefox Firebug - 困惑爲什麼HTML源代碼不顯示html,但在螢火蟲檢查元素HTML是嗎?

我有一個應用程序,用戶需要在網站「wxw.reddit.c0m/register」上註冊一個新的用戶帳戶。

但是,當我使用Firefox的插件Firebug查看html時,我得到的東西完全不同於當我右鍵單擊該網站並查看頁面源代碼時。

我想要做的是從網站獲取驗證碼並將其顯示在應用程序的圖片框中,以便用戶可以查看驗證碼,解決驗證碼,然後應用程序帖子返回到服務響應。

這裏是我使用Firefox的Firebug的檢查元素越來越來源:

<td> 
<input type="hidden" value="Oo3Jo1I8bgzK68agMqo3s79ZZib2OkbK" name="iden"> 
<img class="capimage" src="/captcha/Oo3Jo1I8bgzK68agMqo3s79ZZib2OkbK.png" alt="i wonder if these things even work"> 
</td> 

下面是從頁面上點擊右鍵實際頁面的源代碼。

<td> 
<input name="iden" value="TwRNQVs8sFuU2B2IuESDFUdrnuVyuFc8" type="hidden"/><img class="capimage" alt="i wonder if these things even work" src="http://www.redditstatic.com/kill.png" /> 
</td> 

爲什麼兩個人會向我展示兩種不同版本的HTML?

你將如何能夠抓住該來源使用webclient在picturebox中查看?

回答

1

驗證碼是利用JavaScript動態生成的。由於您無法輕鬆通過下載它來執行JavaScript(您通常需要Web瀏覽器),這對驗證碼來說更安全一些。

根據您使用WebClient的事實判斷,我想說您正嘗試自動註冊。這可能是出於「合法」目的,但也可能出於錯誤原因而使用。在這種情況下你需要做的是使用Process.Start打開網頁,讓你的用戶自己註冊。

+1

真棒回答Minitech ...這就是我要去...我不想讓他們走出應用程序,只是因爲它不值得如果是這樣的話......但我將使用網頁瀏覽器,並讓他們進入瀏覽器首先註冊帳戶。 – 2012-01-10 17:54:04

3

Page Source會從字面上爲您提供瀏覽器從服務器接收到的內容。

Firebug向您顯示頁面的當前內容。

如果頁面在加載後被JavaScript處理過,則兩者會有所不同。

可以通過運行這個書籤(即,或者粘貼到這個地址欄,或將其添加爲書籤到一個按鈕)獲得頁面的電流源:

javascript:h=document.getElementsByTagName('html')[0].innerHTML;function%20disp(h){h=h.replace(/</g,'\n&lt;');h=h.replace(/>/g,'&gt;');document.getElementsByTagName('body')[0].innerHTML='<pre>&lt;html&gt;'+h.replace(/(\n|\r)+/g,'\n')+'&lt;/html&gt;</pre>';}void(disp(h)); 

(從Captain_kurO

這在你的問題的字面問題部分。否則,@ minitech更重要:CAPTCHA的存在是有原因的,而你有點違背它。 :p

相關問題