随机验证码,每次访问这个链接验证码都会变:
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',然后再运行,就可以正常了,如图:
成功搞定!!