近年では、JS、CSSや他の暗号化を高めるために数年前のパラメータTKを取得した後、深刻なの12306に対する抗登るもっともっと!
現在では、ほとんどの人は、この記事でも例外ではありません、着陸進入は、セレンを使用することである使用します。
環境:
ウィンドウズ
python 3.6.5
モジュール:
セレン
pyautogui
時間
最初のステップ:
ブラウザをインスタンス化し、12306公式サイトを入力してください
ドライバ= webdriver.Chrome() driver.get(' https://kyfw.12306.cn/otn/resources/login.html ' ) driver.implicitly_wait( 10 ) driver.maximize_window()
ステップ2:
アカウントのログインをクリックしてください
driver.find_element_by_xpath(' / HTML /本体/ DIV [2] / DIV [2] / UL /リチウム[2] ').click()
第三段階:
入力ボックスでは、アナログ入力は、アカウントのパスワードを:
driver.find_element_by_xpath(' // * [@ ID = "J-userNameに"] ').send_keys(' 123456 ' ) driver.find_element_by_xpath(' // * [ID = "J-パスワード" @] ' .send_keys)(' 123456 ')
ステップ4:
アカウントのパスワードを入力すると、我々は、画像認証コードをクリックをシミュレートされて行う必要があります!
だから、最初の画像をダウンロードしてください。
yzm_code = driver.find_element_by_xpath(' / HTML /本体/ DIV [2] / DIV [2] / DIV [1] / DIV [2] / DIV [3] / DIV ' ) yzm_code.screenshot(' yzm.png ')
ステップ5:
あなたは、彼らはそれがコードドッキングプラットフォームイェジンハオ、自分のトレーニングモデルであるかどうか、やりたい、またはクリックをシミュレートするためのコードを使用することができた後、ダウンロードした検証コードも可能です!
最初の2つの方法は、単純に、ここで用いられる第3の実施形態では、シミュレートされたクリック、と言うことはできません。
ここでは、私は、私は1,2,3 1,2,3 3画像をクリックしてプログラムを自動的に入力された効果を達成したい、結果を達成するための必要性について、このコードの8つのマップの合計を話しています。
それでは、各画像の中心の座標を取得しましょう、定期的にあり、知的な人は一目で理解する必要があります。
私はこれを書くためにここだけでした。
INPUT =符号(' このコードを入力してください' ) time.sleep( 5。 ) point_map = { ' 1 ':' 40,45 ' 、 ' 2 ':' 116,53 ' 、 ' 4 ':' 257,50 ' 、 ' 5 ':' 40121 ' 、 ' 6 ':' 116133 ' 、 '3 ":' 185,52 ' 、 ' 7 ':' 185132 ' 、 ' 8 ':' 257130 ' }
DEF get_point(indexs): indexs = indexs.split(' ' ) TEMP = [] のための指標でindexs: temp.append(point_map [インデックス])プリント(TEMP) 戻り一時 TEMP = get_point(コード)
、非常に基本的な事柄を説明されていないコードのこの二つの文字列。
正味の効果は、あなたが得る、1、2を入力するのは、リストです。
['40、45' 、 '116,53']
これは絵の座標ではなく、画面全体のグローバル座標上の検証コードの座標のみであることに注意してください!!!!
それでは、どのようにグローバル座標を得るのですか?符号の頂点(1206,428)+認証コード座標、すなわち、グローバル座標!ここでは(1206,428)です自分でテストしてください!
ステップ6:
クリックをシミュレートし、pyautoguiにこのモジュールを使用しています。遅延は、画面を切り替える追加する必要があります。このモジュールを使用する前に、覚えておいてください。
(この記事のみを学習するための方法、およびなし他の意味は、通常、コードドッキングプラットフォームです!私たちは、これらの方法に使用される他のプログラミング過程で自分の知識を適用することができることを願ってい!)
用 I で:TEMP indexs = i.split(' ' ) X = INT(indexs [0]) Y = INT(indexs [1 ]) pyautogui.click( 1206 + X、428 + Y)
最後に、サインインをクリックしてください!
driver.find_element_by_xpath(' // * [ID = "J-ログイン" @] ').click()