| 知乎专栏 |
GitHub: https://github.com/lepture/captcha
Docs: https://captcha.lepture.com/
https://pypi.org/project/captcha/
pip install captcha
from captcha.audio import AudioCaptcha
from captcha.image import ImageCaptcha
audio = AudioCaptcha(voicedir='/path/to/voices')
image = ImageCaptcha(fonts=['/path/A.ttf', '/path/B.ttf'])
data = audio.generate('1234')
audio.write('1234', 'out.wav')
data = image.generate('1234')
image.write('1234', 'out.png')
随机生成10张二维码图片
import os
import random
import time
from captcha.image import ImageCaptcha
captcha_character = list("0123456789abcdefghijklmnopqrstuvwxyz")
captcha_length = 6
if __name__ == "__main__":
# print(captcha_array)
image = ImageCaptcha()
for i in range(10):
code = "".join(random.sample(captcha_character, captcha_length))
path = "./data/test/{}_{}.png".format(code, int(time.time()))
print(code)
image.write(code, path)
查看输出结果
neo@Neo-Mac-mini-M4 ~/P/captcha (main)> ls data/test/ 8du4ar_1731408230.png pwia23_1731408230.png ryfxk1_1731408230.png zqhpnx_1731408230.png nqr7g6_1731408230.png py475s_1731408230.png udwl1r_1731408230.png p9g5z6_1731408230.png q02f31_1731408230.png ysjdqb_1731408230.png
import base64
import random
from io import BytesIO
from captcha.image import ImageCaptcha
seed = '123456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ'
def generate_captcha():
"""
生成 4 位验证码,返回图片的 base64
"""
captcha_str = ''.join(random.choice(seed) for _ in range(4))
image = ImageCaptcha().generate_image(captcha_str)
buffer = BytesIO()
image.save(buffer, format='PNG')
data = buffer.getvalue()
return 'data:image/png;base64,' + base64.b64encode(data).decode()
if __name__ == '__main__':
print(generate_captcha())