python Pytesseract 动态验证码图片识别
这篇博客中讲解了如何提取页面中的验证码图片,当图片为动态图片时pytesseract 时不能识别的,因此需要将动态图片转为静态图片,下面时实现代码
i = 0 try: while 1: new_im = Image.new("RGBA", img.size) new_im.paste(img) new_im.save(png\0000_+str(i)+.png) i += 1 img.seek(img.tell() + 1) except EOFError: pass
动态图片实际上时多张静态图片滚动播放的效果,因此只要循环的取出每一帧即可。
pytesseract 的使用大家可以百度即可,安装即用,下面给出了一些学习参考
Pytesseract 还支持自己录入特殊字体,操作也很简单,可以自行百度
Pytesseract 识别验证码代码如下:
import pytesseract from PIL import Image image = Image.open("test.jpg") code = pytesseract.image_to_string(image) print(code)
特别说明一下: 数字字母验证码图片多数都是可以通过Pytesseract识别的,但是当字符之间有粘连的情况时Pytesseract 时无法识别,因此需要想办法先去除粘连和干扰线。
欢迎留言讨论