使用captcha模块即可直接生成验证码

码云链接

语言:python
python版本:Python 3.8.3
编译器:vscode
需要的模块:captcha,PIL

  1. 首先是github的链接和源码
    -. captcha的github传送门
    -. github上的源码
  2. 安装pip install -i https://pypi.douban.com/simple captcha
  3. 初次使用
# 导入模块,该模块主要是生成图片验证码的
from captcha.image import ImageCaptcha

# 实例化,可以指定参数,可以自行查看源码,或者查看我写的另一篇关于解析该模块的源码的文章
img = ImageCaptcha()
# 该类实现了4(应该是4种)种生成验证的方法
# 第一种方法,该方法是生成最简单的验证码,没有什么干扰线或干扰点的,如下
im = img.create_captcha_image(chars='1234', color='red', background='white')
# 解释一下这个方法,该方法接受三个参数
# 第一个参数:chars就是你要生成验证码的字符是什么
# 第二个参数:color就是验证码文字的颜色是什么
# 第三个参数:background是该图片的背景颜色
im.show()	# 显示该图片
print(im.size)
print(type(im))

在这里插入图片描述

  • 需要说明的是,这样生产的验证码每次的位置都是不固定的哦,图片大小默认是(160, 60),最后生产的图片格式:PIL.Image.Image,如下
    在这里插入图片描述
    在这里插入图片描述
  1. 这次来随机生成不同字符的验证码和颜色
from captcha.image import ImageCaptcha
import string, random

# 实例化
img = ImageCaptcha()
# 生成字母和数字
lettersAndNumbers= string.ascii_letters + string.digits
# 咱们生产10张验证码
for _ in range(10):
    # 随机选择4个字符生产验证码
    chars = ''.join(random.sample(lettersAndNumbers, k=4))
    # 随机颜色,color和background是接受rgb(0,0,0)这样的参数的
    # 所以可以使用random生成即可
    rgb = (random.randint(0, 256), random.randint(0,
                                                  256), random.randint(0, 256))
    b_rgb = (random.randint(0,
                            256), random.randint(0,
                                                 256), random.randint(0, 256))
    im = img.create_captcha_image(chars=chars, color=rgb, background=b_rgb)
    # 图片保存的路径
    path = r'生成验证码/images/' + chars + '.png'
    im.save(path)
print('验证码生成完成')

  • 下面是随机生成的10张验证码
    在这里插入图片描述
  1. 该方法(create_captcha_image)的使用就到这,其他的方法请看另外的几篇文章(点击就可以直接跳转到对应的文章哦)
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐