打码是利用人工智能大量输入验证码的意思,这里提供一个自封装的打码类,需要的朋友可以参考下
自封装的打码类,windows下建议用打码兔(调用的官方dll)、linux下建议超人打码(http api)
复制代码代码如下:# coding:utf-8 from ctypes import * import requestsimport JSON import random import binasciifrom config import config
类Dama2():' ' '打码兔打码.'_ username=' ' _ password=' ' _ _ attrs _ _=[' DM ','用户名','密码',' softuuid ','超时']
def __init__(self):self .DM=WinDLL(' lib/crackcaptchaapi。dll’)如果不是自我._用户名:达马2 ._ username=config[' dama '][' dama 2 '][' username ']da m2 ._ password=config[' dama '][' dama 2 '][' password ']self。用户名=c _ char _ p(self ._ username)自己。password=c _ char _ p(self ._ password)self。soft uuid=c _ char _ p(' 6 FBC 06 efdc 777 eee 854842572102 daec ')self。超时=c _ ushort(30)
def recv_byte(self,imgdata,img type=42):# img data=c _ void _ p(img data)img leng=c _ uint(len(img data))img type=c _ ulong(img type)RES=c _ char _ p(' ')
代码=自我100 . 00马克。D2Buf(self.softuuid,self.username,self.password,imgdata,imgleng,self.timeout,imgtype,res)如果代码0:返回结果值返回错误的
def report_err(self,imgid):返回错误的
班级任潮():_用户名=''_密码=' ' _ _属性__=['DM ','用户名','密码','软uuid ','超时]
def __init__(self):如果不是自我._用户名:任潮. username=config['达马']['任潮']['用户名]任潮. password=config['dama']['任潮]['密码']
self.s=请求session()self。编码=' utf-8 '自我。s .超时=16 self。data={ '用户名':self。用户名,“密码”:self.password,“softid”:“1234”,#1234换成自己的imgid ':' ',' imgdata': ''}
def get _ left _ point(self):尝试:r=self。美国邮政(' http://apib。SZ 789。net:88/获取userinfo。ashx ',self.data)返回r.json()请求除外ConnectionError:返回self.get_left_point()除外:返回错误的
def recv_byte(self,img数据):self。data[' img data ']=binascii。b2a _ hex(img数据).upper()try:r=self。美国邮政(' http://apib。SZ 789。net:88/recvbyte。阿什克斯,自我。data)RES=r . JSON()if RES[u ' info ']=-1:self。report _ err(RES[u ' imgid '])#识别错误返回错误的
return r . JSON()[u ' result ']请求除外ConnectionError:返回self.recv_byte(imgdata)除了:返回错误的
def report_err(self,imgid):self . data[' imgid ']=imgidif self。data[' img data ']:del self。data[' img data ']try:r=self。美国邮政(' http://apib。SZ 789。net:88/报错。阿什克斯,自我。数据)返回r.json()请求除外ConnectionError:返回self.report_err(imgid)除外:返回错误的
class Dama():flag='dama2 '
def _ _ init _ _(self):如果self。flag==' dama 2 ':self . w=dama 2()elif self。flag=='任潮:自我。w=任潮()else:self.w=Dama2()#默认
def recv_byte(self,imgdata):返回self.w.recv_byte(imgdata)
def report_err(self,imgid):返回self。w .报告错误(imgid)
# evident _ _ name _ _==' _ _ main _ _ ':通过
''用户名和密码更换为自己的'''
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。