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


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切换hosts文件代码示例
Dec 31 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
May 15 Python
python K近邻算法的kd树实现
Sep 06 Python
对numpy中二进制格式的数据存储与读取方法详解
Nov 01 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
pytorch自定义初始化权重的方法
Aug 17 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
Mar 02 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
python palywright库基本使用
Jan 21 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注入实例
2006/10/09 PHP
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
ThinkPHP权限认证Auth实例详解
2014/07/22 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
JavaScript中json使用自己总结
2013/08/13 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
微信小程序 导入图标实现过程详解
2019/10/11 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
[36:37]2014 DOTA2华西杯精英邀请赛5 24 VG VS iG
2014/05/25 DOTA
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
Python交换变量
2008/09/06 Python
Python 内置函数complex详解
2016/10/23 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
Python操作redis实例小结【String、Hash、List、Set等】
2019/05/16 Python
python如何将多个PDF进行合并
2019/08/13 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
tensorflow实现对张量数据的切片操作方式
2020/01/19 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
网上签名寄语活动留言
2014/01/18 职场文书
单身联谊活动方案
2014/01/29 职场文书
个性与发展自我评价
2014/02/11 职场文书
计生专干事迹
2014/05/28 职场文书
干部年终考核评语
2015/01/04 职场文书
python 模块重载的五种方法
2021/04/24 Python
Python中zipfile压缩包模块的使用
2021/05/14 Python
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android
Android Flutter实现3D动画效果示例详解
2022/04/07 Java/Android
如何利用python实现列表嵌套字典取值
2022/06/10 Python