forked from thinkido/login_model
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathchaojiying.py
More file actions
77 lines (66 loc) · 2.52 KB
/
chaojiying.py
File metadata and controls
77 lines (66 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
# coding:utf-8
import requests
from hashlib import md5
class ChaojiyingClient(object):
def __init__(self, username, password, soft_id):
self.username = username
password = password.encode('utf8')
self.password = md5(password).hexdigest()
self.soft_id = soft_id
self.base_params = {
'user': self.username,
'pass2': self.password,
'softid': self.soft_id,
}
self.headers = {
'Connection': 'Keep-Alive',
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
}
def PostPic(self, im, codetype):
"""
im: 图片字节
codetype: 题目类型 参考 http://www.chaojiying.com/price.html
"""
params = {
'codetype': codetype,
}
params.update(self.base_params)
files = {'userfile': ('ccc.jpg', im)}
r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
return r.json()
def ReportError(self, im_id):
"""
im_id:报错题目的图片ID
"""
params = {
'id': im_id,
}
params.update(self.base_params)
r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
return r.json()
def image_to_text(img,
username='**********', # 超级鹰账号密码, 软件ID, 具体用法自己去看超级鹰的API
password='************',
soft_id='***************',
img_kind=1902):
"""
将图片转化为文字
:param img: 验证码二进制数据
:param username:用户名
:param password: 密码
:param soft_id: 软件id
:param img_kind: 验证码类型
:return:
"""
chaojiying = ChaojiyingClient(username, password, soft_id)
result = chaojiying.PostPic(img, img_kind)
if result['err_no'] == 0:
return True, result['pic_str']
else:
chaojiying.ReportError(result['pic_id'])
return False, result['err_str']
if __name__ == '__main__':
chaojiying = ChaojiyingClient('*********', '**********', '96001') # 用户中心>>软件ID 生成一个替换 96001
im = open('captcha.png', 'rb').read() # 本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
print(chaojiying.PostPic(im, 1902)) # 1902 验证码类型 官方网站>>价格体系 3.4+版 print 后要加()