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


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发送邮件实例讲解(python发邮件附件可以使用email模块实现)
Dec 03 Python
Python3.5编程实现修改IIS WEB.CONFIG的方法示例
Aug 18 Python
django 常用orm操作详解
Sep 13 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
Python hashlib模块加密过程解析
Nov 05 Python
Python tcp传输代码实例解析
Mar 18 Python
基于Python的一个自动录入表格的小程序
Aug 05 Python
python3获取控制台输入的数据的具体实例
Aug 16 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
Sep 01 Python
python温度转换华氏温度实现代码
Dec 06 Python
python获取字符串中的email
Mar 31 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
BBS(php & mysql)完整版(七)
2006/10/09 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
用JQuery 实现的自定义对话框
2007/03/24 Javascript
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
List the Codec Files on a Computer
2007/06/11 Javascript
JavaScript 检测浏览器和操作系统的脚本
2008/12/26 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
Vertx基于EventBus发送接受自定义对象
2020/11/16 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
python生成随机红包的实例写法
2019/09/02 Python
pytorch 常用线性函数详解
2020/01/15 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
公司庆典欢迎词
2015/01/26 职场文书
2015年社区关工委工作总结
2015/04/03 职场文书
答辩状格式范本
2015/05/22 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
责任书格式
2019/04/18 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
深入解析MySQL索引数据结构
2021/10/16 MySQL
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android