python手工打码_利用打码兔和超人打码自封装的打码类分享

本文介绍了使用Dama2和Chaoren两种打码服务,通过Python实现的自动化打码和验证码解析功能,展示了如何利用库如requests和ctypes调用API进行图片识别,适用于编程挑战或验证码处理场景。
摘要由CSDN通过智能技术生成

# 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 更换为自己的

"""

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值