python-captcha-生成图片验证码

该博客介绍了如何使用python-captcha库生成图片验证码,并将其与对应的文本值存储到yaml文件中。每张验证码图片被赋予一个加密的名称,并以jpg格式保存。yaml文件用于后期验证时查找图片内容,方便快捷。
摘要由CSDN通过智能技术生成

python-captcha-生成图片验证码


import base64
import os
import random
import string
from pathlib import Path

import yaml
from captcha.image import ImageCaptcha

characters = string.digits + string.ascii_uppercase

width, height, n_len, n_class = 170, 80, 4, len(characters)

BASE_DIR = Path(__file__).resolve().parent

png_dir = os.path.join(BASE_DIR, "verify_png")
if not os.path.exists(png_dir):
    os.makedirs(png_dir)
yaml_file = "xxx.yaml"
# 生成一千张验证码
for i in range(1000):
    generator = ImageCaptcha(width=width, height=height)
    random_str = ''.join([random.choice(characters) for j in range(4)])
    img = generator.generate_image(random_str)

    # 名称加密
    ciphertext = base64.urlsafe_b64encode(random_str.encode()).decode()

    # 将图片保存在目录verify_png文件夹下
    file_name = png_dir + "\\" + ciphertext + '.jpg'

    if not os.path.exists(file_name):
        img.save(file_name)

        data = {ciphertext: random_str}
        with open(yaml_file , 'a+', encoding='utf-8') as f:
            yaml.dump(data, stream=f, allow_unicode=True)

with open(yaml_file , 'r', encoding='utf8') as f:
    data = yaml.load(f, Loader=yaml.Loader)
print(data)

结果


yaml_files

UFBEMw==: PPD3
QTBQMQ==: A0P1
UDNXRw==: P3WG
OVpJWQ==: 9ZIY
WTBNUg==: Y0MR
N1RTQQ==: 7TSA
U0lFSQ==: SIEI
QTEyRw==: A12G
R1MxTw==: GS1O
MkU3Qg==: 2E7B
N1NNUQ==: 7SMQ

图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结


为什么需要生成yaml文件,因为我这是需要用于校验当前图片验证码的准确性,所以使用yaml存储了当前图片的名称和对应的图片内容,读取简单,操作方便.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值