*

CoinCheckに自動ログインする【UWSC】

以前、仮想通貨暗号通貨の自動売買に関して書きましたが、
今回は実際にUWSCを使ってログインをしてみます。

UWSCはWindows専用の自動化マクロで、たいていのことはこれでできます。
また、ちゃんとプログラミングすればマウスやキーボードの操作系を取られれずに、バックグラウンドで作動させることが可能です。

//IEオブジェクトの生成
IE = IECreate()
IE.Visible = True

//Coincheckにアクセス
IE.Navigate("https://coincheck.com/ja/sessions/signin")

//処理待ち アクセス待ち
BusyWait(IE)
	
//ログインメールアドレス
IESETDATA(IE,"mail@mail.com","email")

//ログインパスワード
IESETDATA(IE,"your_password","password")

//送信(この処理が一番重要)
IESETDATA(IE,TRUE,"","class=submit")

//処理待ち
BusyWait(IE)
	
//チャート画面に飛ぶ(なくてもいいよ)
IE.Navigate("https://coincheck.com/ja/exchange/charts")


//IEオブジェクトを安定的に生成させるための関数
//(CreateOleObjはたまに失敗してエラーになり、止まります。)
Function IECreate()
	TRY
      IE = CREATEOLEOBJ("InternetExplorer.Application")
    EXCEPT
      EXEC("C:\Program Files\Internet Explorer\iexplore.exe")
      IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
    EndTry
    
    RESULT = IE
Fend


//IEの処理待ちを待つ関数(拝借してます)
DEF_DLL SendMessageA(Hwnd, Long, Long, Dword): bool: user32
CONST WM_ACTIVATE = $06
function BusyWait(ie, exitFlg = TRUE, waitTime = 10, retry = 3, redirectWait = 1, lastWait = 30)
	RESULT = FALSE
	timeout = GETTIME()+waitTime

	//COM_ERR_IGN  //COMエラー無視
	while True
		sleep(0.2)
		ifb (! ie.busy) and (ie.readyState=4)
			SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0) // 更新直後に WM_ACTIVATEを送る事によりバックグランドでも操作可となる
			//リダイレクト確認処理(リダイレクトされた場合はリダイレクト先読み込み完了まで待つ)
			timeout2 = GETTIME()+redirectWait
			while True
				sleep(0.2)
				if !((! ie.busy) and (ie.readyState=4)) then break
				ifb GETTIME() >= timeout2
					RESULT = TRUE
					break 2		//正常終了(読み込み完了でループを抜ける)
				endif
			wend
		endif

		//timeout時の処理
		ifb GETTIME() >= timeout
			retry = retry - 1
			ifb retry <= 0		//エラー終了(指定回数で読み込みが完了しなかった)
				print "BusyWait:Time Out "+ie.Document.URL
				if exitFlg then exitexit
				break
			elseif ie.Document.URL = -999999	//極稀にURLが空白の場合があるのでエラー終了
				print "BusyWait:RetryError "+ie.Document.URL
				if exitFlg then exitexit
				break
			endif 
			print "BusyWait:Retry "+ie.Document.URL
			ie.Navigate(ie.Document.URL)		//再読み込み

			//timeoutカウンタリセット
			ifb retry = 1		//ラストループで指定時間を変える
				timeout = GETTIME()+lastWait
			else
				timeout = GETTIME()+waitTime
			endif
			
		endif
	wend
	COM_ERR_RET  //エラー処理復帰
FEND

後ろのBusyWaitはよそ様のBusyWait関数を拝借しております。
IEオブジェクトのBuyWaitはいろいろなパターンがありますが、こちらの関数が一番いろいろ考え抜かれていると思います。

ブラウザにIEを使うのは、Microsoft公式のブラウザであるIEの場合、オブジェクトが使えるからです。
Chrome、Firefox、Opera、Tor、Safariなどではオブジェクト操作ができないため、

基本的にマウスクリックとかになってしまいます。
(汎用性が失われます。あと処理待ち操作ができません。)

コインチェックで2段階認証している場合は、もちろん上記のコードだけではログインできません。
上記のコードは二段階認証をOFFにしている場合にのみ有効です。

(二段階認証も自動化するには、Androidエミュレーターを使いましょう)

基本的に、ログインのアドレスとパスワードを書き換えればそのまま動きます。

「ソースコードだけじゃ何していいかわからない」という人は、「UWSC」でググってね。

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

【仮想通貨】現物取引のアービトラージと信用取引のアービトラージは全然別物です

今さら~ な感じもしますが、タイトルの通りです。 仮想通貨からトレードの世界に入ってきた方の中には

記事を読む

BinanceとPoloniexの自動アービトラージシステムを作る1

ずっと国内の大手3社でアービトラージしているのですが、サーバーの脆さや約定力のなさが目立つことが良く

記事を読む

仮想通貨取引所のチャット音声自動読み上げシステムを作る2 APIでチャット内容を取得

bitFlyerのチャットメソッドは https://lightning.bitflyer.jp/

記事を読む

MT4でビットコインの自動売買と過去検証

ビットコインチャートを表示できるMT4業者が増えてきたということですが、 現物でアービトラージをす

記事を読む

ビットコインアービトラージ取引履歴

2017年8月13日の取引履歴です。 コインチェックとZaifでアービトラージしています。

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。

PAGE TOP ↑