验证码生成

本文介绍了一个使用Python编写的脚本,该脚本利用ImageCaptcha库生成指定长度的数字验证码图片,并将这些图片保存到本地文件夹中。脚本随机选择数字字符创建验证码文本,然后使用ImageCaptcha库生成对应图像。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值