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


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的Django框架生成PDF文件的教程
Jul 22 Python
Python实现的选择排序算法示例
Nov 29 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
将python包发布到PyPI和制作whl文件方式
Dec 25 Python
Python面向对象编程基础实例分析
Jan 17 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
Sep 18 Python
解决python 输出到csv 出现多空行的情况
Mar 24 Python
python字典进行运算原理及实例分享
Aug 02 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生成静态页面教程
2012/01/10 PHP
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
火狐浏览器(firefox)下获得Event对象以及keyCode
2008/11/13 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
JavaScript实现仿新浪微博大厅和腾讯微博首页滚动特效源码
2015/09/15 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
python第三方库学习笔记
2020/02/07 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
H5混合开发app如何升级的方法
2018/01/10 HTML / CSS
美国畅销的跑步机品牌:ProForm
2017/02/06 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
防沙治沙典型材料
2014/05/07 职场文书
任命书范本大全
2014/06/06 职场文书
建议书格式
2015/02/04 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
党小组意见范文
2015/06/08 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
应用最多的公文《通知》如何写?
2019/04/02 职场文书