curl 類比使用者登陸,但有驗證碼

來源:互聯網
上載者:User
我在用curl做一個使用者類比登陸,但是遇到了驗證碼。我在網上找了很多資料,但都沒有解決問題。我想,要類比登入的思路大概是這樣子的:

1、擷取頁面中的表單,類比填寫登入名稱和密碼;
2、從驗證碼圖片中得到驗證碼,類比填寫驗證碼;(這一步擷取驗證碼解決不了)
3、提交cookie和參數進行登入,儲存本地cookie;

其中第2步遇到了問題,怎麼會的驗證碼?使用圖片識別庫嗎?還是下載讓使用者手工輸入呢?或者還有其他的辦法?

希望做過這類需求的朋友幫幫忙,謝謝~

回複內容:

我在用curl做一個使用者類比登陸,但是遇到了驗證碼。我在網上找了很多資料,但都沒有解決問題。我想,要類比登入的思路大概是這樣子的:

1、擷取頁面中的表單,類比填寫登入名稱和密碼;
2、從驗證碼圖片中得到驗證碼,類比填寫驗證碼;(這一步擷取驗證碼解決不了)
3、提交cookie和參數進行登入,儲存本地cookie;

其中第2步遇到了問題,怎麼會的驗證碼?使用圖片識別庫嗎?還是下載讓使用者手工輸入呢?或者還有其他的辦法?

希望做過這類需求的朋友幫幫忙,謝謝~

火速解答

  1. 手工輸入
  2. 花錢買線上的api線上打碼
  3. ocr(不準確,簡單的驗證碼可以,但總體上指望不大)

你可以去 www.uuwise.com 這樣的網站,去瞭解一下驗證碼打碼的黑技術

  • 如果手工打碼,用PHP帶Cookie取到驗證碼的值,再設Header("Content-Type: image/jpeg");吐出來, 這裡你可以自己結合前端做些小的改善,例如用Ajax Long Poll或webSocket做個即時提醒的小東西,一旦產生新驗證碼,你的用戶端叮咚提示你打驗證碼,打完,把內容傳給CURL類,CURL再類比你把驗證碼傳給網站。 在PHP中這裡有個很強悍的類比庫,叫做snoopy.class.php
  • 如果驗證碼比較簡單(無扭曲、無幹擾線、非中文、字元長度是定長、每個驗證碼字元邊界距離等同、噪點小、字型不生僻或你能找到),也就是說,你覺得機器可以根據一定模式識別出來,那麼自己用PHP寫個OCR,或調用擴充,我不知道有沒有OCR擴充你自己找找。自己寫也簡單,我記得是先把圖片二值化,再把每個字母的地區拆分,計算黑色所佔比例,和已有字型庫對比,網上類似教程太多,自己實踐。

http://blog.csdn.net/ugg/article/details/3972368
http://jingyan.baidu.com/article/456c463b66e5320a583144b7.html
http://www.poboke.com/study/php-verification-code-identification-primary.html

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.