Amazonで自動的にSwitchを買ってくれるプログラムを書いたよ

自動化/自動操作Selenium

皆さんはNintendo Switchは買えましたか?この記事を書いている2017年8月現在においてSwitchは超絶品薄状態です。オンラインショップで在庫が復活して5分ともたずに品切れになってしまいます。そこで今回は販売ページを監視して自動的にSwitchを購入してくれるプログラムを書いたのでここに載せておきます。今回もSleniumとPythonで書いたので、もし掲載しているプログラムを実行したいなんていう奇特な方がいらっしゃったらSeleniumの実行環境を用意してください。

一応、免責を書いておきます。本記事を参考にして発生したいかなる損害も自分は補償しかねますのでその点に合意いただける方だけご覧ください。もしかしたらアカウント停止とか変なものを買っちゃったりするかもしれないので、もしプログラムを実行する場合はご自身でコードを確認してからにしてください。



OS : Ubuntu 16.04 LTS
Python : 3.5.2
Selenium : 2.53.6


1. プログラムの概要

さて、まずは今回掲載するプログラムの概要的なものを書いておきます。実際にはそんなに長いプログラムでは無いので、説明を読むより実際にコードを見た方が早い気もします……。

本プログラムを実行するにはSelenium(Chrome)をPython3.x系で実行する環境を必要としています。もし環境が異なる場合はコードないの該当部分をご自身で書き換えてください。また、環境が整っていなければ本サイトの以前の記事なんかを参考にしてください。

今回のプログラムは、ブラウザの起動(Chrome)→Amazonの商品ページにアクセス(1分毎)→在庫の確認(出品元の確認)→(目的の在庫があれば)カートに入れて決算ページへ移動→ログイン→購入確定という流れを自動的に行うプログラムです。おまけとして出品元を制限するのと購入する最大金額を設定する機能をつけておきました。これにより転売ヤーとかいう自己中さんから購入するのを防ぐことができます。しかし、住所やクレカなどのアカウント情報を登録する機能はないため、それはあらかじめ手動で登録しておいてください。

2. 今回書いたプログラム

さて、いよいよ本記事のメインである自動購入プログラムのコードを掲載します。

難しい処理は一切おこなっていないので、コードの詳しい説明は省きます。ただこのコードを使用する際はAmazonへのログイン情報として、”LOGIN_ID”と”LOGIN_PASSWORD”の変数にご自身のログイン情報を入力してください。また、今回はNintendo Switchを購入するためのプログラムといて書いたので”ITEM_URL”にはSwitchの商品ページのURLを記述していますが、このURLを書き換えれば他の商品の監視も行うことができると思います。あとは変な出品者から買わないために、許可する店舗名を指定する”ACCEPT_SHOP”と購入金額の最大値を指定する”LIMIT_VALUE”をご自身の買いたいものに合わせて書き換えてください。

今回はコードをシンプルにするために、スマートじゃない手順がとられています(特に値段をチェックするところなんて購入確定の寸前だし……)。それを踏まえた上で参考にしてください。

おわりに

というわけで、性懲りも無く今回もSeleniumでのブラウザ操作でした。本サイトのコードを掲載している記事は将来の自分や初学者の方向けにプログラムのサンプルになればいいなというモチベーションで書いています。しかし、今回はそれだけではなく、Switchの自動購入というトレンディそうなものを題材にすることで、あわよくばバズらないかなと期待しちゃっています。おそらくバズることはありませんが、今後もクソコードを投下しまくるのでよろしくお願いします。

ちなみに、自分は運よくスプラトゥーン2同梱版を手動で予約できたので、このプログラムでは購入していません。そのため、おそらくは正しく動くとは思いますが、最後の購入ボタンを押すところは未検証です。正直、TwitterのBotやら各ECサイトのアラートを設定して自分で操作する方が確実な気もします。

結論。運次第。

追記 2017/09/09
コメントありがとうございます。ご指摘の通りにコードを一部書き直しました。

2017-08-04自動化/自動操作Selenium