python2验证码识别

随机验证码,每次访问这个链接验证码都会变:
https://credit.wsjd.gov.cn/portal/captcha


1.得确保自己安装了PIL,pytesseract这两个库
安装方法:
pip install xx
2.今天研究了下验证码识别,那么就一起分享给大家吧,帮助大家脱坑,如有不懂,请留言,或者哪里有错请指教,废话不多说直接开干,撸代码,创建文件codeDemo.py:
# -*- coding: utf-8 -*-
import pytesseract
import urllib2
from PIL import Image
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate, br',
    'Connection': 'keep-alive',
    'Host': 'credit.wsjd.gov.cn',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36',
}
url = 'https://credit.wsjd.gov.cn/portal/captcha'#随机验证码
request = urllib2.Request(url,headers=headers)
res = urllib2.urlopen(request).read()
try:
    captchaFile = 'yishi/static/images/credit_captcha.png'#这个是创建一个文件来存放解析出来的验证码
    with open(captchaFile, 'wb') as f:
        f.write(res)
    #对验证码进行识别
    image = Image.open(captchaFile)
    captcha_value = pytesseract.image_to_string(image)
    print '验证码为:'+captcha_value
except IOError,e:
    #验证码失败 重新请求
    print('验证码获取失败')
    print(e)

 2.以上代码运行的话,你可能会报如下错误:

WindowsError: [Error 2] 

  那么请点击此处链接:

https://zh.osdn.net/projects/sfnet_tesseract-ocr-alt/downloads/tesseract-ocr-setup-3.02.02.exe/ 

下载这个软件并安装,下载完成后的软件如图:

然后双击按照默认方式下一步下一步的这样去安装即可。

3,再次运行codeDemo.py文件,依然报错:

WindowsError: [Error 2]   

解决方案如下:

将pytesseract.py文件里面的tesseract_cmd = 'tesseract' 改成  tesseract_cmd = r'C:Program Files (x86)Tesseract-OCR esseract.exe' (此处说明下为什么加个r,是因为windows下 转义了,你去掉r可以看出 变成蓝色的了)或者'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe',然后再运行,就可以正常了,如图:

成功搞定!!

原文地址:https://www.cnblogs.com/fh-fendou/p/9015052.html