python进行图片文字识别十分简单,但是因为验证码的特殊性,识别存在一定难度,识别率比较低,本篇主要介绍简单的识别方法,下篇将会介绍增加识别率的办法。
1.环境
python2.7
ubuntu 16.04
2.安装
pip install requests
pip install pytesseract # 安装Python库Pytesseract
pip install tesseract # 安装Python库tesseract (不安装可能报错)
sudo apt-get install tesseract-ocr (不安装可能报错)
3.代码 (识别某网站验证码)
import requests
import pytesseract
from PIL
import Image
import time
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36'}
url=
"验证码地址。。。。自己找一个吧我的就不贴了"
# 根据网站的具体情况构建请求,我测试的网站比较简单
image = requests.get(
url = url,
headers = headers)
#发请求获取验证码图片
with
open(
'yanzheng.png',
'wb')
as fp:
for i
in image:
fp.write(i)
time.sleep(
1)
info= Image.open(
'yanzheng.png')
image_info = pytesseract.image_to_string(info)
print
"验证码内容是:"image_info
如果非常好识别就不叫验证码了。。。
我测试的验证码还是比较简单的,但实际识别率依然非常低。
所以需要通过一些其他手段增加识别率。具体方法将会在下一篇介绍。
win下安装tessract :
下载地址:https://github.com/tesseract-ocr/tesseract/wiki/4.0-with-LSTM#400-alpha-for-windows
选择:4.0.0-alpha for Windows下面Windows Installer made with MinGW-w64 from UB Mannheim
配置:
2,安装完成tesseract-ocr后,我们还需要做一下配置 在Python35\Lib\site-packages\pytesseract找到pytesseract.py打开后做如下操作
# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
#tesseract_cmd = 'tesseract'
tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
或者直接ctrl +左键,点击 image_to_str进入后,搜索tesseract_cmd ,把后面的内容改成你安装的路径。
参考文章:https://blog.csdn.net/qiushi_1990/article/details/78041375