from captcha.image import ImageCaptcha
from PIL import Image
import numpy as np
import random
import sys
number = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
CAPTCHA_LENGTH = 4
VOCAB_LENGTH = len(number)
def random_captcha_text(char_set = number, captchr_size=4):
#验证码列表
captchr_text = []
for i in range(captchr_size):
#随机选择
c = random.choice(char_set)
#加入验证码列表
captchr_text.append(c)
return captchr_text
#生成字符对应的验证码
def gen_captcha_text_and_image():
"""
get captcha text and np array
:param captcha_text: source text
:return: captcha image and array
"""
image = ImageCaptcha()
#获取随机生成的验证码数字
captcha_text = random_captcha_text()
#把验证码列表转换为字符串
captcha_text = ''.join(captcha_text)
#生成验证码
captcha = image.generate(captcha_text)
image.write(captcha_text, 'captcha/images/'+captcha_text+'.jpg')#写到文件
num = 10000
if __name__ == "__main__":
for i in range(num):
gen_captcha_text_and_image()
sys.stdout.write('\r>>Creating image %d/%d' % (i+1, num))
sys.stdout.flush()
sys.stdout.write('\n')
sys.stdout.flush()
print("done.")