基于Python的验证码识别实例

#!/usr/bin/python
#encoding=utf-8

import urllib2
import time
import json
def main():

    submitUrl = 'http://op.juhe.cn/vercode/index' #接口地址
    appkey = '******' #接口申请的key
    codeType = '1005' #验证码的类型
    imagePath = '1.jpg' #图片本地地址

    #buld post body data
    boundary = '----------%s' % hex(int(time.time() * 1000))
    data = []
    data.append('--%s' % boundary)

    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'key')
    data.append(appkey)
    data.append('--%s' % boundary)

    data.append('Content-Disposition: form-data; name="%s"\r\n' % 'codeType')
    data.append(codeType)
    data.append('--%s' % boundary)

    fr=open(imagePath,'rb')
    data.append('Content-Disposition: form-data; name="%s"; filename="b.png"' % 'image')
    data.append('Content-Type: %s\r\n' % 'image/png')
    data.append(fr.read())
    fr.close()
    data.append('--%s--\r\n' % boundary)

    http_body='\r\n'.join(data)
    try:
        req=urllib2.Request(submitUrl, data=http_body)

        #header
        req.add_header('Content-Type', 'multipart/form-data; boundary=%s' % boundary)
        req.add_header('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36')
        req.add_header('Referer','http://op.juhe.cn/')

        resp = urllib2.urlopen(req, timeout=30)

        qrcont=resp.read()

        result = json.loads(qrcont, 'utf-8')
        error_code = result['error_code']
        if(error_code == 0):
            data = result['result'] #接口返回结果数据
            print(data)
        else:
            errorinfo = u"错误码:%s,描述:%s" % (result['error_code'],result['reason']) #返回不成功,错误码:原因
            print(errorinfo)

    except Exception,e:
       print e.args

if __name__ == "__main__":
    main()


登录 后可发表评论

    最新发布
    聚合数据©版权所有