Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > python入门

利用打码兔和超人打码自封装的打码类分享

来源:中文源码网    浏览:123 次    日期:2024-04-28 14:44:32
【下载文档:  利用打码兔和超人打码自封装的打码类分享.txt 】


利用打码兔和超人打码自封装的打码类分享
自封装的打码类, windows下建议用打码兔(调用的官方dll),linux下建议超人打码(http api)
复制代码 代码如下:# coding:utf-8from ctypes import *import requestsimport jsonimport randomimport binasciifrom config import config
class Dama2(): """打码兔打码.""" _username = '' _password = '' __attrs__ = ['DM', 'username', 'password', 'softuuid', 'timeout']
def __init__(self): self.DM = WinDLL('lib/CrackCaptchaAPI.dll') if not self._username: Dama2._username = config['dama']['dama2']['username'] Dama2._password = config['dama']['dama2']['password'] self.username = c_char_p(self._username) self.password = c_char_p(self._password) self.softuuid = c_char_p('6fbc06efdc777eee854842572102daec') self.timeout = c_ushort(30)
def recv_byte(self, imgdata, imgtype=42): # imgdata = c_void_p(imgdata) imgleng = c_uint(len(imgdata)) imgtype = c_ulong(imgtype) res = c_char_p('')
code = self.DM.D2Buf(self.softuuid, self.username, self.password, imgdata, imgleng, self.timeout, imgtype, res) if code > 0: return res.value return False
def report_err(self, imgid): return False
class Chaoren(): _username = '' _password = '' __attrs__ = ['DM', 'username', 'password', 'softuuid', 'timeout']
def __init__(self): if not self._username: Chaoren._username = config['dama']['chaoren']['username'] Chaoren._password = config['dama']['chaoren']['password']
self.s = requests.Session() self.s.encoding = 'utf-8' self.s.timeout = 16 self.data = { 'username': self.username, 'password': self.password, 'softid': '1234',#1234换成自己的 'imgid': '', 'imgdata': '' }
def get_left_point(self): try: r = self.s.post('http://apib.sz789.net:88/GetUserInfo.ashx', self.data) return r.json() except requests.ConnectionError: return self.get_left_point() except: return False
def recv_byte(self, imgdata): self.data['imgdata'] = binascii.b2a_hex(imgdata).upper() try: r = self.s.post('http://apib.sz789.net:88/RecvByte.ashx', self.data) res = r.json() if res[u'info'] == -1: self.report_err(res[u'imgid']) # 识别错误 return False
return r.json()[u'result'] except requests.ConnectionError: return self.recv_byte(imgdata) except: return False
def report_err(self, imgid): self.data['imgid'] = imgid if self.data['imgdata']: del self.data['imgdata'] try: r = self.s.post('http://apib.sz789.net:88/ReportError.ashx', self.data) return r.json() except requests.ConnectionError: return self.report_err(imgid) except: return False
class Dama(): flag = 'dama2'
def __init__(self): if self.flag == 'dama2': self.w = Dama2() elif self.flag == 'chaoren': self.w = Chaoren() else: self.w = Dama2() # 默认
def recv_byte(self, imgdata): return self.w.recv_byte(imgdata)
def report_err(self, imgid): return self.w.report_err(imgid)
# testif __name__ == '__main__': pass
"""username and password 更换为自己的"""

相关内容