Pythonのオートメーション - 識別を検証します

まず、準備

1、環境インフラ:のpython3 + pycharm +セレン+リクエスト+枕、ドライバーのChromeブラウザ。

  1)のpython:ここではPython3.7、少しのインストールです。

  2)pycharm:Pythonのエンジニアリングを作成するためのエディタ、わずか設置。

  3)セレン:のpython3環境は、単にピップセレンcmdがインストール用のウィンドウをinstallコマンド入力し、pip.exeを所有する必要があります。

  4)要求:単にPIPインストールCMDコマンドウィンドウの要求をインストール入力し、インタフェースを識別する。

  5)枕:切断用画像、単に枕CMDは、インストールするためのウィンドウをコマンドインストールPIP入ります。

  ドライバー6)Chromeブラウザ:へ:?http://chromedriver.storage.googleapis.com/index.html  64ビットとの下位互換性のある適切なchromedriver.exeを、ダウンロードし、あなたは32をダウンロードすることができます。Pythonのインストールディレクトリで、解凍後https://www.cnblogs.com/yuntimer/p/11178530.htmlを参照してください

2、元のウェブサイトに簡単に-インターフェイスアルゴリズム(有料)、購入検証アルゴリズムのコード・インターフェースを登録する必要があり、ユーザーは上記のID(準備my_appId )とパスワード(my_appSecretを、ユーザーが注意サイト)。

第二に、実現

1、ソースサイト李 - 認証コード認識 - ライブラリ(例:D:\ Python37 \ Libの)上のPythonのインストールを解凍し、Pythonの-SDKをダウンロードし、例をリクエスト。

2、セレンを使用すると、Chromeブラウザを起動し、ページを埋めるために確認コードを入力します。

1  '' ' Chromeブラウザ、オープン最大限のブラウザ呼び出し''' 
2ドライバー= webdriver.Chrome() 、ブラウザ開く
3 driver.get(" コード・ページのURL "アドレスオープンする
4  )driver.maximize_windowを(
 。5 time.sleep(2)
コードの表示

図3に示すように、スクリーンショットブラウザイメージ、カット(枕ライブラリ)、関数を切断書き込ま画像。

1  '' ' 2、CAPTCHAページから抽出されたスクリーンショットブラウザイメージ、カット(枕ライブラリ)、' '' 
2  DEFの  jietu():
 3      driver.save_screenshot(" D:/yemian.png " 4      '' ' 座標の方法を使用して、左上隅の座標はコードを取得する''' 
5      LEFT_TOP = driver.find_element_by_id(" captchaImg " ).location
 。6      プリント" 左上" 、LEFT_TOP)
 。7      X1 = LEFT_TOP [ ' X ' ] #の検証ボックスの左上隅のX座標
。8      Y1 = LEFT_TOP [ 'そして、"] #の左上隅の検証ボックスy軸座標
9      '' ' 取ら右下座標' '' 
10      IMG = driver.find_element_by_id(" captchaImg "#1 位置決め画像
11      X2 = img.size [ ' ' ] X1 +   =====画像+ X1の幅を取得し、「右目盛
12は      Y2 = img.size [  ] + Y1 取得した像高Y1座標================ +」
13で     印刷フォーポイント座標" 、X1、Y1、X2、Y2)
 14      ' '' 4点の画像座標カットを使用して'''
15      yan_img Image.open(=" D:/yemian.png "画像を開く
16      yan_ma = yan_img.crop((X1、Y1、X2、Y2))
 17。      yan_ma.save(" D:/yanzhengma.png "ハードディスクに保存
コードの表示

図4に示すように、識別コード、(李ソースインタフェース)のため、ソースサイト李 - 対応する識別コードを用いて、画像検証方法。

簡単にソース・サイトの例:

ShowapiRequestインポートShowapiRequestから

R = ShowapiRequest( "http://route.showapi.com/184-4"、 "my_appId"、 "my_appSecret")
r.addFilePara( "画像"、 "替换为你的文件")
、R。 addBodyPara( "タイプID"、 "34")
r.addBodyPara( "convert_to_jpg"、 "0")
r.addBodyPara( "needMorePrecise"、 "0")
RES = r.post()
プリント(res.text)#返回信息

自己書き込み実装:

'「(送信元インターフェイスに簡単に)、さらに認証コード識別のための」' 
)(shibieyanzhengma をDEF:
    インタフェースアドレスにアクセスするためのインタフェースを使用して#環境===>あなたは物事に注意を払うようになってきました
    yun1 = ShowapiRequest(「のhttp://route.showapi .COM / 184から4 "" my_appId "" my_appSecret ") 増大インターフェイスにパラメータ要求
    yun1.addBodyPara("タイプID "" 36 ")#" 36「: 英数字の組み合わせ、6つのコード
    yun1.addBodyPara ( "convert_to_jpg"、 "0" )# "0": 画像変換する必要はありません
    #テルインタフェース識別認証コードイメージファイル
    :yun1.addFilePara( "イメージ"、 "/yanzhengma.png D") アクセスインタフェース
    結果= yun1を.post()。JSON()
    印刷(結果)
    のJSONから#エキスの有効なデータ
    のテキスト結果= [ 'showapi_res_body'] [ '結果'] 
    印刷( "検証コードがある"、テキスト)
    リターン・テキスト

 第三に、スクリプト

注:上記の実装では、英数字の識別コード_ファイル・タイプ・コードを書かれています。

図1に示すように、識別検証 - 英数字組成物6:

 

 

 

 

更新します

 

おすすめ

転載: www.cnblogs.com/yuntimer/p/11407733.html