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


Posted in Python onMarch 16, 2014

自封装的打码类, 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中stdout输出不缓存的设置方法
May 29 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
解析Python中的变量、引用、拷贝和作用域的问题
Apr 07 Python
详解Python中where()函数的用法
Mar 27 Python
python 获取图片分辨率的方法
Jan 08 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
对python中arange()和linspace()的区别说明
May 03 Python
python 通过文件夹导入包的操作
Jun 01 Python
基于python 取余问题(%)详解
Jun 03 Python
Python使用代理抓取网站图片(多线程)
Mar 14 #Python
python3.3使用tkinter开发猜数字游戏示例
Mar 14 #Python
Python subprocess模块学习总结
Mar 13 #Python
用Python和MD5实现网站挂马检测程序
Mar 13 #Python
python操作数据库之sqlite3打开数据库、删除、修改示例
Mar 13 #Python
使用Python判断IP地址合法性的方法实例
Mar 13 #Python
Python 分析Nginx访问日志并保存到MySQL数据库实例
Mar 13 #Python
You might like
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
Javascript 两个窗体之间传值实现代码
2009/09/25 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
javascript实现简单查找与替换的方法
2015/07/22 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
bootstrap网格系统使用方法解析
2017/01/13 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
Python中的sort()方法使用基础教程
2017/01/08 Python
Python数据结构之翻转链表
2017/02/25 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python装饰器用法实例总结
2018/05/26 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
自我评价是什么
2014/01/04 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
个人先进材料范文
2014/12/30 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫