simadongyang


import http.client, mimetypes, urllib, json, time, requests

######################################################################
#验证码地址**(记得修改)**
Image="d:/yzm/screenImg.png"
#验证码种类**(记得修改)**
Species=1005
class YDMHttp:

apiurl = \'http://api.yundama.com/api.php\'
username = \'zhangsima\'
password = \'zhang123\'
appid = \'\'
appkey = \'\'

def __init__(self, username, password, appid, appkey):
self.username = username
self.password = password
self.appid = str(appid)
self.appkey = appkey

def request(self, fields, files=[]):
response = self.post_url(self.apiurl, fields, files)
response = json.loads(response)
return response

def balance(self):
data = {\'method\': \'balance\', \'username\': self.username, \'password\': self.password, \'appid\': self.appid, \'appkey\': self.appkey}
response = self.request(data)
if (response):
if (response[\'ret\'] and response[\'ret\'] < 0):
return response[\'ret\']
else:
return response[\'balance\']
else:
return -9001

def login(self):
data = {\'method\': \'login\', \'username\': self.username, \'password\': self.password, \'appid\': self.appid, \'appkey\': self.appkey}
response = self.request(data)
if (response):
if (response[\'ret\'] and response[\'ret\'] < 0):
return response[\'ret\']
else:
return response[\'uid\']
else:
return -9001

def upload(self, filename, codetype, timeout):
data = {\'method\': \'upload\', \'username\': self.username, \'password\': self.password, \'appid\': self.appid, \'appkey\': self.appkey, \'codetype\': str(codetype), \'timeout\': str(timeout)}
file = {\'file\': filename}
response = self.request(data, file)
if (response):
if (response[\'ret\'] and response[\'ret\'] < 0):
return response[\'ret\']
else:
return response[\'cid\']
else:
return -9001

def result(self, cid):
data = {\'method\': \'result\', \'username\': self.username, \'password\': self.password, \'appid\': self.appid, \'appkey\': self.appkey, \'cid\': str(cid)}
response = self.request(data)
return response and response[\'text\'] or \'\'

def decode(self, filename, codetype, timeout):
cid = self.upload(filename, codetype, timeout)
if (cid > 0):
for i in range(0, timeout):
result = self.result(cid)
if (result != \'\'):
return cid, result
else:
time.sleep(1)
return -3003, \'\'
else:
return cid, \'\'

def post_url(self, url, fields, files=[]):
for key in files:
files[key] = open(files[key], \'rb\');
res = requests.post(url, files=files, data=fields)
return res.text


######################################################################

# 用户名(填自己的)**(记得修改)**
username = \'zhangsima\'

# 密码(填自己的)**(记得修改)**
password = \'zhang123\'

# 软件ID,开发者分成必要参数。登录开发者后台【我的软件】获得!(非开发者不用管)
appid = 1

# 软件密钥,开发者分成必要参数。登录开发者后台【我的软件】获得!(非开发者不用管)
appkey = \'22cc5376925e9387a23cf797cb9ba745\'

# 图片文件
filename = Image

# 验证码类型,# 例:1004表示4位字母数字,不同类型收费不同。请准确填写,否则影响识别率。在此查询所有类型 http://www.yundama.com/price.html
codetype = Species

# 超时时间,秒
timeout = 60

# 检查
if (username == \'username\'):
print(\'请设置好相关参数再测试\')
else:
# 初始化
yundama = YDMHttp(username, password, appid, appkey)

# 登陆云打码
uid = yundama.login();
print(\'uid: %s\' % uid)

# 查询余额
balance = yundama.balance();
print(\'balance: %s\' % balance)

# 开始识别,图片路径,验证码类型ID,超时时间(秒),识别结果
cid, result = yundama.decode(filename, codetype, timeout);
print(\'cid: %s, result: %s\' % (cid, result))

 

分类:

技术点:

相关文章: