確認コードを破壊する方法で

ユニバーサルコード1

2つのマスク・コード

確認コードを取得することを学ぶ3機

4決済市場を抽出するためのインタフェースを使用

 

ここで給与の使用について話をする_スーパーイーグルス、セレンライブラリwebdriverをを使用する必要性、必要性は、画像処理枕の画像を使用します

自動識別コードの5つのステップ

1つのコールは、ブラウザを作成し、ログインページを開くwebdriverを

2全体の切片としてログインページ(一部としてコードを含むコードは_自動リフレッシュ静的ショットそのように同定をクリック)

図3は、ページ検証コード要素の位置と大きさを認識する

場所及び方法画像を用いてステップ4スクリーンショット上記全体像を差し引きます

5つのスーパーイーグルスは、インタフェースのスクリーンショットの認識を呼び出す支払っ

直接コードに

セレンwebdriverをインポート
PILインポート画像番号の画像処理ライブラリから
インポートChaojiying_Client番号のインポート・インターフェース・モジュール名china_railway.captcha.chaojiyingから
インポート時間を

、Googleのブラウザ#の作成に
ブラウザを= webdriver.Chrome()
アクセス指定されたURL
URL =「HTTP:/ /www.chaojiying.com/user/login/「
browser.get(URL)
は3段階認証プロセスのコードを入力するには
#全体のログインページ最初のステップカット運転
browser.save_screenshotを(」login.png「)
ステップこの位置は、確認コード(リフレッシュをクリックすると、値にページを開くことを指していません)とマット決定される
キャップ= browser.find_element_by_xpath(「/ HTML / [本体/ DIV [3] / DIV / DIV [3] / DIV 1] /フォーム/ DIV / IMG 「)# コードページ要素
位置= cap.location位位置コードの検証と判断する
サイズ判断サイズ= cap.size位コード
#トップ、デスクトップ表示スケールで(右のダウン決定四点を残しそれは125%である場合に関連する、すべてのデータは1.25)を増幅した
左位置= [「X」]#フロントページの所定の位置に四点、始点の左上隅を
アップ= LOCATION [ "Y"]
右=左+サイズは[ '幅']#最初のL +要素は、幅
=最大+サイズ[ '高ダウン ']# 初期+の素子高さ
=(左、上、右VAR 、ダウン
#第三工程完全テーマキャップ、コール・インタフェースの位置決めマットコードと識別コードに応じ
login_cap Image.open =(「login.png」)
キャプチャ= login_cap.crop(VAR)
captcha.save(「キャプチャ.PNG ')
スーパーワシは、インタフェース、および抽出されたデジタルsend_keys操作を呼び出す
Chaojiying_Clientは(= chaojiyingのアカウント''パスワード'' 899836 ')ID番号、ユーザーが交換用のソフトウェアを生成する>> 96001
IM =開きます(' captcha.png '' RB「)。 (読み)# ローカルの画像ファイルのパスは時々 a.jpg //必要WINシステムを置き換えるために
RES = chaojiying.PostPic(IM、1902)#1902検証コードタイプ公式サイト>>価格システムを追加するバージョン3.4+印刷()の後に
browser.find_element_by_xpath( "/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input").send_keys(res['pic_str「])#入力インタフェース検証コードリード

browser.find_element_by_xpath( "/ HTML /本体/ DIV [3] / DIV / DIV [3] / DIV [1] /フォーム/ P [4] /入力")。(クリック)# ログインボタンをクリック
#ジャンプテイク時間シュシュは、肉眼では何も間違って、主張しない自動化されていない
(5)time.sleepを
browser.close()

 

 

 

 

 

 

 

自分のアカウントで次のようにインターフェイスのドキュメントは、再充電後に公式の使用を申請する必要があり

インポート要求
hashlib輸入のMD5から

クラスChaojiying_Client(オブジェクト):

デフ__init __(自己、ユーザ名、パスワード、soft_id):
self.username =ユーザー名
パスワード= password.encode( 'UTF8')
(self.password = MD5(パスワード).hexdigest )
self.soft_id = soft_id
self.base_params = {
'ユーザ':self.username、
'PASS2':self.password、
'はSoftID':self.soft_id、
}
self.headers = {
'接続': 'キープアライブ' 、
'ユーザーエージェント': 'のMozilla / 4.0(互換; MSIE 8.0; Windows NTの5.1;トライデント/ 4.0)'、
}

PostPic(自己、IM、CODETYPE)DEF。
"" "
IM:图片字节
CODETYPE:题目类型参考http://www.chaojiying.com/price.html
"""
のparams = {
'CODETYPE':CODETYPE、
}
params.update(self.base_params)
ファイル= { 'userfile':( 'ccc.jpg'、IM)}
R = requests.post( 'http://upload.chaojiying.net/Upload/Processing.php'、データ=のparamsは、ファイル=ファイル、ヘッダ=自己。ヘッダ)
戻りr.json()

DEFでReportError(自己、im_id):
"" "
im_id:报错题目的图片ID
"""
のparams = {
'ID':im_id、
}
のparams。更新(self.base_params)
requests.post = R&LT( 'http://upload.chaojiying.net/Upload/ReportError.php'は、データがparamsは、ヘッダー= self.headers =)
戻りr.json()


:IF __name__ == '__main__'
chaojiying =をChaojiying_Client( 'ユーザ名'、 'パスワード'、 '899836')#>>ユーザーCenterソフトウェアは、交換用のID 96001発生
IM =オープン( 'yzm.png'、 'RB')を。読む()#ローカルの画像ファイルのパスWINシステムは時々交換する必要がa.jpg //
RES = chaojiying.PostPic(IM、1902)#公式サイト>>価格システムのバージョン3.4+印刷後の検証コードを追加する1902種類()
印刷(RES [ 'pic_str'])

おすすめ

転載: www.cnblogs.com/digitalNatives/p/10963409.html