栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-captcha-生成图片验证码

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-captcha-生成图片验证码

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存储了当前图片的名称和对应的图片内容,读取简单,操作方便.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861908.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号