我写的WEBPY框架的 提供验证码识别的PYTHON 程序
2015-12-24 16:24
816 查看
import os
os.chdir('D:\pytesser_v0.0.1')
from pytesser import *
import web
import base64
import StringIO
import math
import Image
import cStringIO
import urllib2
import re
import io
urls = ("/.*","getVerifyCode")
app = web.application(urls,globals())
class getVerifyCode:
def GET(self):
i = web.input()
img_content = i.get('img_content')
img_format = i.get('img_format')
char_length = i.get('char_length')
_char_length = int(char_length)
char_type = i.get('char_type')
variable = i.get('variable')
_variable = str(variable)
variable_length = i.get('variable_length')
_variable_length = 0
if _variable == 'true':
_variable_length = int(variable_length)
temp = _char_length
if _char_length < _variable_length:
_char_length = _variable_length
_variable_length = temp
con = str(img_content)
con = con.replace(' ','+')
img = Image.open(io.BytesIO(base64.decodestring(con )))
text = image_to_string(img)
text = text.strip()
text = text.replace(' ','')
text = text.replace('<','')
text = text.replace('>','')
text = text.replace(')','')
text = text.replace('(','')
print '########text########text########text####'
print text
print '########text########text########text####'
text1 = text[0:_char_length]
text2 = text[0:_variable_length]
reg1="[0-9]{"+str(_char_length)+"}"
reg2="[a-zA-Z]{"+str(_char_length)+"}"
reg3="[0-9a-zA-Z]{"+str(_char_length)+"}"
reg11=reg1
reg22=reg2
reg33=reg3
if 'true' == _variable :
reg11="[0-9]{"+str(variable_length)+"}"
reg22="[a-zA-Z]{"+str(variable_length)+"}"
reg33="[0-9a-zA-Z]{"+str(variable_length)+"}"
reg=""
if char_type == '1':
reg=reg2
elif char_type == '2':
reg=reg1
else:
reg=reg3
an=re.findall(reg,text1)
if an :
text = text1;
print '########an########an########an####'
print an
print '########an########an########an####'
else:
if _variable == 'true':
if char_type == '1':
reg=reg22
elif char_type == '2':
reg=reg11
else:
reg=reg33
an=re.findall(reg,text2)
if an :
text = text2;
print '########an2########an2########an2####'
print an
print '########an2########an2########an2####'
print '########reg########reg########reg####'
print char_type
print reg
print an
print '########reg########reg########reg####'
success = 1
char_code = ""
orig_code = ""
if an:
success = 1
char_code = text
print char_code
else:
success = 0
orig_code = text
print text
return '{success:'+str(success)+',char_code:'+str(char_code)+',orig_code:'+str(orig_code)+'}';
if __name__ == "__main__":
app.run()
os.chdir('D:\pytesser_v0.0.1')
from pytesser import *
import web
import base64
import StringIO
import math
import Image
import cStringIO
import urllib2
import re
import io
urls = ("/.*","getVerifyCode")
app = web.application(urls,globals())
class getVerifyCode:
def GET(self):
i = web.input()
img_content = i.get('img_content')
img_format = i.get('img_format')
char_length = i.get('char_length')
_char_length = int(char_length)
char_type = i.get('char_type')
variable = i.get('variable')
_variable = str(variable)
variable_length = i.get('variable_length')
_variable_length = 0
if _variable == 'true':
_variable_length = int(variable_length)
temp = _char_length
if _char_length < _variable_length:
_char_length = _variable_length
_variable_length = temp
con = str(img_content)
con = con.replace(' ','+')
img = Image.open(io.BytesIO(base64.decodestring(con )))
text = image_to_string(img)
text = text.strip()
text = text.replace(' ','')
text = text.replace('<','')
text = text.replace('>','')
text = text.replace(')','')
text = text.replace('(','')
print '########text########text########text####'
print text
print '########text########text########text####'
text1 = text[0:_char_length]
text2 = text[0:_variable_length]
reg1="[0-9]{"+str(_char_length)+"}"
reg2="[a-zA-Z]{"+str(_char_length)+"}"
reg3="[0-9a-zA-Z]{"+str(_char_length)+"}"
reg11=reg1
reg22=reg2
reg33=reg3
if 'true' == _variable :
reg11="[0-9]{"+str(variable_length)+"}"
reg22="[a-zA-Z]{"+str(variable_length)+"}"
reg33="[0-9a-zA-Z]{"+str(variable_length)+"}"
reg=""
if char_type == '1':
reg=reg2
elif char_type == '2':
reg=reg1
else:
reg=reg3
an=re.findall(reg,text1)
if an :
text = text1;
print '########an########an########an####'
print an
print '########an########an########an####'
else:
if _variable == 'true':
if char_type == '1':
reg=reg22
elif char_type == '2':
reg=reg11
else:
reg=reg33
an=re.findall(reg,text2)
if an :
text = text2;
print '########an2########an2########an2####'
print an
print '########an2########an2########an2####'
print '########reg########reg########reg####'
print char_type
print reg
print an
print '########reg########reg########reg####'
success = 1
char_code = ""
orig_code = ""
if an:
success = 1
char_code = text
print char_code
else:
success = 0
orig_code = text
print text
return '{success:'+str(success)+',char_code:'+str(char_code)+',orig_code:'+str(orig_code)+'}';
if __name__ == "__main__":
app.run()
相关文章推荐
- python基础----map和reduce
- python之socket
- winpython好用到哭了,自带numpy,scipy,matplotlib,scikit-learn
- 有一个fuck叫做wfg,还是大写---python的@修饰符解析
- Python学习笔记----面向对象(类)
- ArcGIS中python实现地图服务的自动发布
- python逐行读取文件内容的三种方法
- Python学习笔记,我的一个PyQt工程,一:Python是什么鬼?
- Python学习笔记,我的一个PyQt工程,一:Python是什么鬼?
- Python学习遇到的问题
- Python之抓取动态网页
- python的cls,self,classmethod,staticmethod
- 在cmd等终端运行python代码,文件
- 【python】日志系统
- python的第一个程序
- python 定制类
- 【python】if __name__ == '__main__'
- 在Mac OS上搭建Python的开发环境
- python反射
- python的元类---类的类