환경
윈도우 10 64비트
파이썬 3.8
보안 문자 0.4
머리말
captcha
이미지 또는 오디오 확인을 생성하는 데 사용되는 타사 라이브러리입니다. 확인 코드 기술은 web
애플리케이션 . 이 기사에서는 몇 가지 일반적인 용도를 살펴보겠습니다.
설치하다
명령을 사용하여 pip
설치
pip install captcha
예
먼저 사진 확인 코드의 예를 살펴보세요.
import argparse
from captcha.image import ImageCaptcha
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--text', type=str, default='xugaoxiang', help='text that show in the image')
opt = parser.parse_args()
# 实例化,指定宽度和高度,如果想更换显示的字体,可以使用参数 fonts
image = ImageCaptcha(width=300, height=100)
captcha_text = opt.text
# 生成图片
data = image.generate_image(captcha_text)
# 保存图片
image.write(captcha_text, 'captcha.png')
매개변수로 --text
실행 , 매개변수가 없으면 기본값이 사용됩니다.xugaoxiang
python test.py --text xgx
다음으로 음성 인증 코드의 예를 살펴보겠습니다. 핵심 코드는 매우 유사합니다.
from captcha.audio import AudioCaptcha
if __name__ == '__main__':
audio = AudioCaptcha()
captcha_text = '1234'
audio_data = audio.generate(captcha_text)
audio.write(captcha_text, 'out.wav')
실행 후 오디오 파일이 현재 디렉토리에 생성됩니다 out.wav
. 오디오에는 문자열이 포함되며 1234
물론 방해가 되는 약간의 소음이 있습니다.
음성디렉토리를 지정하지 않으면 기본적으로 숫자만 생성되며, 문자를 생성해야 하는 경우 코드에서 오류를 보고합니다. 이때 우리는 자체 음성 라이브러리를 생성할 수 있으며, 이는 두 가지 도구 espeak
(텍스트 음성 변환) 및 (음성 처리) 를ffmpeg
사용하여 구현할 수 있습니다 . 시스템을 사용하는 방법은 다음과 같습니다.ubuntu
첫 번째는 이 두 가지 도구를 설치하는 것입니다.apt install
sudo apt install espeak ffmpeg
공통문자는 0~9까지의 숫자와 26글자이며 대문자와 소문자를 구분하는 것이 가장 좋으며 이를 명확히 한 후 명령어를 실행한다.
# 环境变量
export ESLANG=en
# 创建目录
mkdir $ESLANG
# 给每个字符创建一个文件夹,使用 espeak 生成对应文本的语音,最后使用 ffmpeg 处理一下
for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9}; do mkdir $ESLANG/$i; espeak -a 150 -s 100 -p 15 -v$ESLANG $i -w $ESLANG/$i/orig_default.wav; ffmpeg -i $ESLANG/$i/orig_default.wav -ar 8000 -ac 1 -acodec pcm_u8 $ESLANG/$i/$i.wav; rm $ESLANG/$i/orig_default.wav; done
for i in {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9}; do mkdir $ESLANG/$i; espeak -a 150 -s 100 -p 15 -v$ESLANG $i -w $ESLANG/$i/orig_default.wav; ffmpeg -i $ESLANG/$i/orig_default.wav -ar 8000 -ac 1 -acodec pcm_u8 $ESLANG/$i/$i.wav; rm $ESLANG/$i/orig_default.wav; done
자체 음성 라이브러리를 사용하면 코드만 보고 사용할 수 있습니다.
from captcha.audio import AudioCaptcha
if __name__ == '__main__':
# 使用自己的语音库
audio = AudioCaptcha(voicedir="en")
captcha_text = 'XGX123'
audio_data = audio.generate(captcha_text)
audio.write(captcha_text, 'out.wav')
이러한 방식으로 문자의 음성도 생성할 수 있습니다. ubuntu
여기서는 대소문자를 구분 windows
하지만 구분하지 않는다는 점 에 유의해야 합니다 X
. 즉 와 는 동일 x
합니다 . 따라서 windows
에서는 모든 대문자 또는 소문자를 먼저 통일 처리한 다음 해당 음성을 생성해야 합니다.
한자음화 부분 apt
은 espeak
설치 후 기본적으로 지원하지 않으며 오류 메시지가 나타납니다. Full dictionary is not installed for 'zh'
해결 방법은 다시 컴파일 espeak
하고 컴파일 --compile=zh
매개변수를 것입니다.관심 있는 어린이 신발은 스스로 시도할 수 있습니다.
자세한 내용은 공식 문서 https://pypi.org/project/captcha/를 참조하십시오.
Python 실용 모듈에 대한 주제
더 유용한 python
모듈을 다음으로 이동하십시오.
https://xugaoxiang.com/category/python/modules/