zoukankan      html  css  js  c++  java
  • 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',然后再运行,就可以正常了,如图:

    成功搞定!!

  • 相关阅读:
    HLS协议实现
    hdu 1710 Binary Tree Traversals
    geoserver + postgis+postgresql+agslib.swc
    hdu 1241
    数值分析之牛顿法多项式求根
    逆波兰表达式 java
    【SQL】查询语句中in和exists的区别
    jsp连接MySQL操作GIS地图数据,实现添加point的功能
    mahout学习-1
    文件归档
  • 原文地址:https://www.cnblogs.com/fh-fendou/p/9015052.html
Copyright © 2011-2022 走看看