Python識別字母數字組合驗證碼

hahadelphi發表於2021-09-11

Python識別字母數字組合驗證碼

在爬蟲過程中難免會遇到驗證碼,各種驗證碼似乎阻擋了爬蟲的腳步。

因為本文實現的功能是在內網環境下完成的,所以沒有程式碼介紹,也沒有識別效果顯示。

1、編碼和轉換樣本影像。

2、得到一個能夠反映影像特徵的code,然後儲存所有這些樣本影像的code。

3、圖片轉換code的方法可以選擇hash進行轉換。

圖片轉換code的方法我選擇的hash轉換過程如下:

縮放:圖片縮放8*8。

求平均值:計算灰度圖中所有畫素的平均值。

比較:畫素值大於平均值1,反之0,總共64位。

生成hash:將上述步驟生成的1和0按順序組合成圖片的指紋(hash)。順序不固定。但比較時必須有相同的順序。

在獲得hash值後,將同一數字對於圖片的hash值存在於txt檔案中,在實際使用時,對預測影像進行上述相同的預處理操作,出4張圖片,然後計算出4張預測影像的hash值,將測試影像的hash值與TXT檔案中的hash進行比較,計算出漢明距離,即兩個64位的hash值有多大不同,不同位數越少,圖片越相似。

在獲得測試影像與每個樣本影像hash值的漢明距離後,進行統計,平均取預測值最大的樣本影像標籤作為預測值。識別速度也不錯,平均只需要0.3秒就可以完成一次識別。

這種識別方法操作簡單,對簡單的字母數字組合驗證碼非常有效,但對影像預處理提出了更高的要求,不具有泛化性。不同的驗證碼每次都需要單獨編輯規則。

以上就是Python識別字母數字組合驗證碼的方法,希望對大家有所幫助。更多Python學習指路:

本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2828264/,如需轉載,請註明出處,否則將追究法律責任。

相關文章