2011-08-22 15 views
0

我正在嘗試自動向Web表單提交相同/相似的數據。作爲這個過程的一部分,我想提交數據到一個具有驗證碼的PHP Web表單...驗證碼被定義爲Img src =「http://domain.com/captcha.php」....它是鏈接到名爲「CAPTCHA」的頁面上的文本字段如何使用java.net.URLConnection獲取一個php web表單中的驗證碼圖像

我想提交數據的頁面位於http://domain.com/submit.php ..我試圖使用java.net.URLConnection打開到此頁面的連接。

我想知道的是,我如何在屏幕上獲得此驗證碼圖像的值?我希望最終用戶填寫此驗證碼,然後我將提交表單以及驗證碼(我已經擁有所有其他字段的值)。

在上java.net.URLConnection中的Sun文檔,我發現了下列相關本條

「下面的方法被用於該連接到遠程對象作出後訪問頭字段和內容:

  • 的getContent
  • 的getHeaderField
  • 的getInputStream
  • 的getOutputStream」

我無法找到一個「getContent」的好例子,我覺得它應該是從網頁中檢索數據的函數。我計劃在Google App Engine for Java上使用URLConnection。

任何幫助,將不勝感激。

回答

1

您需要解析服務器返回的HTML頁面,然後您需要在該頁面中找到該圖像的URL,下載圖像(正確處理cookie時要格外小心),然後將其顯示給用戶。

0

如果URL如您所描述的那樣,服務器可能使用cookie或其他會話標識符來確定向用戶提供了哪個驗證碼 - 因此自己提取驗證碼將導致與用戶必須輸入的驗證碼不同的驗證碼。

這些機制是專門設計,以防止有人在做這種事情,你似乎想要做的,雖然如此,我認爲這將是不道德的幫助你做到這一點。

+0

尼克,我已經看到,僅顯示在屏幕上的驗證碼2個其它程序(一個用Delphi編寫的,其他的在Java中),並且當用戶填寫驗證碼,則該表單被提交到它的行動。所以它可以做到,只是我不知道如何... – user893664

+0

@ user893664我不是說它不能做 - 我說的captcha是專門設計,以防止這種事情。 –

+0

是的,但在某些情況下,比如我開發的搜索引擎優化關鍵字研究軟件,有我想有來自谷歌的Adwords關鍵字工具 - 提取一些值,這樣我可以然後顯示與各自沿着這些值關鍵詞:我已經看到了許多關鍵字研究工具,其中一些僅在屏幕上顯示Google Adwords的驗證碼 - 然後將表單提交給Google,並從結果中提取值 - 因此在某些情況下這是必要的... – user893664

相關問題