手机
当前位置:查字典教程网 >脚本专栏 >python >利用打码兔和超人打码自封装的打码类分享
利用打码兔和超人打码自封装的打码类分享
摘要:自封装的打码类,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采用requests库模拟登录和抓取数据的简单示例

Python入门及进阶笔记 Python 内置函数小结

python 排列组合之itertools

vc6编写python扩展的方法分享

python使用PyV8执行javascript代码示例分享

python操作日期和时间的方法

python基础教程之数字处理(math)模块详解

Python ZipFile模块详解

python使用paramiko模块实现ssh远程登陆上传文件并执行

分享15个最受欢迎的Python开源框架

精品推荐
分类导航