coding Rabbit および Superman コーディングを使用した自己カプセル化コーディング クラスの共有

WBOY
リリース: 2016-06-16 08:44:49
オリジナル
1970 人が閲覧しました

自己カプセル化されたコーディング クラス。Windows では、Coding Rabbit (公式 DLL と呼ばれます) を使用することをお勧めします。Linux では、Supermancoding (http API) を使用することをお勧めします。

コードをコピーします コードは次のとおりです:

#coding:utf-8
from ctypes import *
インポートリクエスト
import json
import rand
import binascii
from config import config

class Dama2():
"""コーディングウサギコーディング。"""
_username = ''
_password = ''
__attrs__ = ['DM', 'username' , 'パスワード'、'softuuid'、'タイムアウト']

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('')

コード = self.DM.D2Buf(self.softuuid, self.username, self.password, imgdata, imgleng, self.timeout, imgtype, res)
コード > 0:
の場合、res を返します。値
戻り値 False

def report_err(self, imgid):
false を返す

class Chaoren():
_username = ''
_password = ''
__attrs__ = ['DM', 'username', 'password', 'softuuid', 'timeout' ]

def __init__(self):

self でない場合._username:
Chaoren._username = config['dama']['chaoren']['username']
Chaoren._password = config[ 'ダマ']['チャオレン']['パスワード']

self.s = request.Session()

self.s.encoding = 'utf-8'
self.s.timeout = 16
self.data = {
'ユーザー名' : 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()
ただし、requests.ConnectionError:
return self.get_left_point()
例外:
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']

ただし、requests.ConnectionError:
return self.recv_byte(imgdata)
例外:
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()
を除くrequest.ConnectionError:
return self.report_err(imgid)
例外:
return False

クラス Dama():
フラグ = 'dama2'

def __init__(self):

if self.flag == 'dama2':
self.w = Dama2()
elif self.flag == 'chaoren':
self。 w = Chaoren()
else:
self.w = Dama2() #Default

def recv_byte(self, imgdata):

return self.w.recv_byte(imgdata)

def report_err(self, imgid):

return self.w.report_err(imgid)

# テスト
if __name__ == '__main__':
pass

"""

ユーザー名とパスワードを自分のものに置き換えます
"""

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート