使用Python调用Tesseract处理reCAPTCHA时__init__.py语法错误排查
解决Python3中Tesseract库的SyntaxError问题
嘿,这个错误其实很好定位——你用的tesseract库是给Python 2写的,但你现在跑的是Python 3环境!
Python 2里print是个语句,直接写print 'xxx'没问题,但Python 3把print改成了函数,必须加括号写成print('xxx')。你看到的这句print 'Creating user config file: {}'.format(_config_file_usr)就是典型的Python 2语法,放到Python 3里自然会报SyntaxError。
给你几个可行的解决办法:
推荐方案:换成兼容Python3的pytesseract库
你现在用的这个tesseract包太老旧了,官方推荐的Python3兼容库是pytesseract,用起来更稳定,社区支持也更好。
- 先安装库:
pip install pytesseract - 别忘了安装Tesseract OCR引擎本身(如果还没装的话),然后在代码里配置引擎路径(如果它不在系统环境变量PATH里):
import pytesseract from PIL import Image # 替换成你的Tesseract安装路径 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # 示例:识别验证码图片 captcha_img = Image.open('your_recaptcha_image.png') recognized_text = pytesseract.image_to_string(captcha_img) print(recognized_text)
临时方案:修改旧库的代码(不推荐)
如果你暂时不想换库,可以手动修改报错的文件:
找到C:\python\lib\site-packages\tesseract\__init__.py的第34行,把:
print 'Creating user config file: {}'.format(_config_file_usr)
改成:
print('Creating user config file: {}'.format(_config_file_usr))
不过要注意,这么改只是临时解决,以后更新这个库的话,修改的内容会被覆盖,而且这个库可能还有其他Python2语法的问题,迟早会再报错。
不推荐方案:切换到Python2环境
你也可以装个Python2.7来跑代码,但Python2已经停止维护好几年了,安全漏洞没人修,而且很多新库都不支持它,真心不建议这么做。
另外提一句:reCAPTCHA本身就是专门防自动化识别的,用Tesseract这种普通OCR工具识别成功率极低,大概率达不到你想要的效果哦。
内容的提问来源于stack exchange,提问作者rharmed
相关产品推荐
相关产品推荐

