tft每日頭條

 > 生活

 > 怎麼更快獲取驗證碼

怎麼更快獲取驗證碼

生活 更新时间:2024-06-28 19:04:32

工作中,如何用python和selenium提取驗證碼呢?

獲取驗證碼的方法

按照以往的經驗,有4種方法:

  1. 讓開發幫忙去掉驗證碼代碼,重新部署環境
  2. 弄個萬能驗證碼,每次登陸都可以登陸
  3. 用cookie添加登錄名和密碼避開驗證碼的方式
  4. 老老實實獲取驗證碼圖片,識别出驗證碼

方法一:

遇到好說話的開發,他一般都能幫忙去掉驗證碼的代碼。

但是代碼去掉了,還需要重新部署一套沒驗證碼的環境,麻煩,不推薦。

方法二:

還是需要開發的幫助,弄一個萬能驗證碼,但測試環境弄的萬能驗證碼可千萬不能搞到正式環境。

故不推薦,還是先想想别的辦法。

方法三:

該方法的難點是:如何在cookie中找到登陸用戶名和密碼的name,再将用戶名和密碼添加進去。

方法四:

最容易想到的辦法,重點講這個方法,此處有2個思路。

  1. 截圖登陸頁面,再截取驗證碼圖片,識别;
  2. 直接在登陸頁面,定位到驗證碼,将驗證碼圖片另存為,識别;

該方法實現過程中,用到第三方庫pytesseract,所以先安裝需要引用的庫。

怎麼更快獲取驗證碼(如何獲取驗證碼)1

pytesseract的安裝

pytesseract依賴于tesseract,需要先安裝tesseract。

安裝Tesseract模塊:

git文檔地址:https://digi.bib.uni-mannheim.de/tesseract/

請安裝不帶dev的穩定版,下載後就是一個exe安裝包,直接右擊安裝即可。

一般安裝在默認路徑,如果不在默認路徑,請記住該路徑。

下載培訓數據:

需要下載相應的培訓數據,直接下載整個zip文件,解壓後将文件複制到’tessdata‘目錄中。

一般為:C:\Program Files (x86)\Tesseract-OCR\tessdata

怎麼更快獲取驗證碼(如何獲取驗證碼)2

配置環境變量:

  1. 編輯系統變量裡面 path,添加安裝路徑:C:\Program Files (x86)\Tesseract-OCR
  2. 添加TESSDATA_PREFIX變量,值為:C:\Program Files (x86)\Tesseract-OCR\tessdata
  3. 最後,在cmd命令模式下測試是否安裝成功:
  4. tesseract test.jpg text -l chi_sim

安裝python的第三方庫: 

pip install pillow #一個python的圖像處理庫,pytesseract依賴

pip install pytesseract

修改pytesseract.py文件:

找到pytesseract的安裝包,C:\Python34\Lib\site-packages\pytesseract。

編輯pytesseract.py文件,該步驟必須做,不然編譯時會報錯。

修改内容如下:

tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

怎麼更快獲取驗證碼(如何獲取驗證碼)3

代碼實現

上面講述了實現的2種思路,現在分别說明代碼實現過程。

思路一:

  1. 先計算浏覽器與登陸頁面截圖的比例值
  2. 再計算對應的驗證碼圖片位置
  3. 再将獲取到的驗證碼圖片,先進行二值化處理
  4. 處理後的圖像采用pytesseract庫轉化

怎麼更快獲取驗證碼(如何獲取驗證碼)4

截圖保存驗證碼

怎麼更快獲取驗證碼(如何獲取驗證碼)5

二值化處理驗證碼圖片

怎麼更快獲取驗證碼(如何獲取驗證碼)6

驗證碼圖片轉化

上述圖片轉化過程中,注意參數設置。

不設置參數時,總是将1轉化為7,設置後轉化準确率杠杠滴。

當然,目前隻是識别數字型的驗證碼,文字類型的方法應該是類似的。

思路二:

  1. 先定位到驗證碼的位置
  2. 将驗證碼圖片另存到一個路徑
  3. 該路徑下獲取最新的驗證碼圖片
  4. 驗證碼圖片二值化處理
  5. 處理後的圖像采用pytesseract庫轉化

怎麼更快獲取驗證碼(如何獲取驗證碼)7

驗證碼另存為圖片

後面的圖片處理和獲取驗證碼過程與思路一相同。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved