當我們登入一些**註冊的時候,需要進行驗證碼的操作,可以防止刷票,論壇的刷帖等行為。這篇文章給大家講解一下驗證碼的製作,驗證碼分為兩大類,第一類就是簡訊形式推送的由數字和字母組成的字串,第二類就是登入介面的驗證碼。我們依次展開講解
一般對於推送簡訊形式的驗證碼都是由四個數字或者字母構成,數字為0~9,字母為a~z,a~z。我們使用python的random模組來生成這個驗證碼字串
#生成0~9中的數字,a~z小寫字母,a~z大寫字母pool = [ str(i) for i in range(9) ] + [ chr(i) for i in range(65,91) ] + [ chr(i) for i in range(97,123) ]
每次pool中隨機的挑選乙個元素,將挑選出來的元素拼接起來就生成了乙個驗證碼
for i in range(4):code += random.choice(pool)print code
注:小寫字母a~z的ascii值範圍是65~90,大寫字母a~z的ascii值範圍是97~122如圖,看一下連續生成的五個驗證碼字串的效果
有的**可能不是推送簡訊,而是直接在登入的介面顯示驗證碼的用來驗證,那麼我們一塊看下驗證碼的製作。python的強大與流行是有原因的,那就是豐富的模組庫,python中的第三方庫captcha模組是專門用來生成驗證碼的
我們使用其中captcha模組中的imagecaptcha類生成圖形驗證碼,其中generate_image()方法接收乙個字串引數,這個方法返回具有驗證碼內容的image物件,通過show()方法將渲染出來
image = img.generate_image(str)image.show()
其中generate_image()方法接受的字串引數,我們在第一部分已經生成過驗證碼的字串,可以在第一部分的基礎上進行的渲染
這是渲染出來的五個驗證碼
看到這些驗證碼了嗎,有沒有熟悉的感覺
其實驗證碼的作用就是為了辨別這是不是乙個機器的操作,可以防止一些爬蟲等機器的行為。我們模擬生成驗證碼的過程並不複雜,這恰恰說明了python的功能確實很強大,擴充套件的第三方庫種類非常的豐富,在各個領域都能看到python的**,所以如果對python感興趣的話,一塊學習吧,一起感受python的魅力
Python 驗證碼識別
使用pip安裝pytessseract,如圖所示 例項 識別該中的字元 指令碼 import os os.chdir c python34 lib site packages pytesser from pytesser import from pytesseract import image to...
Python 生成驗證碼
import random import string 因為驗證碼是由字母和數字組成,所以使用string包中的ascii letters和digits將所有的儲存到乙個字串中 從此字串中隨機選取幾個作為目標的驗證碼 s string.ascii letters string.digits prin...
隨機驗證碼 python
功能 隨機驗證碼 日期 01 22 2019 注意 randrange 返回乙個遞增集合的隨機數,使用它必須匯入random包 randint 返回乙個隨機數 chr 返回乙個字元,以整數為引數 import random def check code check code for i in ran...