利用打码兔和超人打码自封装的打码类分享
利用打码兔和超人打码自封装的打码类分享
发布时间:2016-12-28 来源:查字典编辑
摘要:自封装的打码类,windows下建议用打码兔(调用的官方dll),linux下建议超人打码(httpapi)复制代码代码如下:#coding...

自封装的打码类, windows下建议用打码兔(调用的官方dll),linux下建议超人打码(http api)

复制代码 代码如下:

# coding:utf-8

from ctypes import *

import requests

import json

import random

import binascii

from 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)

# test

if __name__ == '__main__':

pass

"""

username and password 更换为自己的

"""

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新python学习
热门python学习
脚本专栏子分类