做数据采集的时候难免会遇到带有验证码的网站,针对简单的验证码我们可通过tesserat-ocr进行识别,那么如何配置响应的环境呢,这里简单与大家做个分享。
1.安装Pillow
pip install Pillow
2.安装
2.安装tesseract-ocr
github地址: https://github.com/tesseract-ocr/tesseract
You Install Tesseract via pre-built binary package or build it from source.
windows:
最新版本的可以在此处下载: tesseract-ocr-setup-3.05.01.exe and tesseract-ocr-setup-4.00.00dev.exe (experimental).
ubuntu:
sudo apt-get install tesseract-ocr
3.安装pytesseract
pip install pytesseract
遇到的问题:
1.FileNotFoundError: [WinError 2] 系统找不到指定的文件
解决方法:
方法1[推荐]: 将tesseract.exe添加到环境变量PATH中,
例如: D:\Tesseract-OCR,默认路径为C:\Program Files (x86)\Tesseract-OCR
注意: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动
方法2: 修改pytesseract.py文件,指定tesseract.exe安装路径
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY tesseract_cmd = 'C:\\Program Files (x86)\\Tesseract-OCR\\tesseract.exe‘
方法3: 在实际运行代码中指定
pytesseract.pytesseract.tesseract_cmd = 'D:\\Tesseract-OCR\\tesseract.exe'
注:这里加'\\'进行转义的原因是因为\t在windows中是有特殊含义的字符
另外: 为了使环境变量生效,需要关闭cmd窗口或是关闭pycharm等ide重新启动
2.pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Tesseract-OCR\\tessdata/eng.traineddata')
解决方法:
方法1[推荐]:
将tessdata目录的上级目录所在路径(默认为tesseract-ocr安装目录)添加至TESSDATA_PREFIX环境变量中
例如: C:\Program Files (x86)\Tesseract-OCR
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.
方法2: 在.py文件配置中指定tessdata-dir
tessdata_dir_config = '--tessdata-dir "D:\\Tesseract-OCR\\tessdata"' # tessdata_dir_config = '--tessdata-dir "'C:\\Program Files (x86)\\Tesseract-OCR\\tessdata"' pytesseract.image_to_string(image, config=tessdata_dir_config)
附: trainedata下载地址: the latest from github.com
参考文档:
https://pypi.python.org/pypi/pytesseract
https://github.com/tesseract-ocr/tesseract/wiki