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


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使用urllib2实现发送带cookie的请求
Apr 28 Python
python简单猜数游戏实例
Jul 09 Python
python模拟Django框架实例
May 17 Python
Python中的日期时间处理详解
Nov 17 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
pandas系列之DataFrame 行列数据筛选实例
Apr 12 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Python如何将装饰器定义为类
Jul 30 Python
基于pycharm 项目和项目文件命名规则的介绍
Jan 15 Python
python3 删除所有自定义变量的操作
Apr 08 Python
python游戏开发之pygame实现接球小游戏
Apr 22 Python
python playwrigh框架入门安装使用
Jul 23 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实现ODBC数据分页显示一例
2006/10/09 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
浅谈jquery.fn.extend与jquery.extend区别
2015/07/13 Javascript
Bootstrap精简教程中秋大放送
2016/09/15 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
javascript实现对话框功能警告(alert 消息对话框)确认(confirm 消息对话框)
2019/05/07 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
简单的Python的curses库使用教程
2015/04/11 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python 获取字符串MD5值方法
2018/05/29 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
Python中实现输入一个整数的案例
2020/05/03 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
keras输出预测值和真实值方式
2020/06/27 Python
Python 保存加载mat格式文件的示例代码
2020/08/04 Python
携程英文网站:Trip.com
2017/02/07 全球购物
澳大利亚相机之家:Camera House
2017/11/30 全球购物
销售实习自我鉴定
2013/12/07 职场文书
简历中的自我评价范文
2014/02/05 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
详解MindSpore自定义模型损失函数
2021/06/30 Python
你真的会用Mysql的explain吗
2022/03/31 MySQL