今日はAmazonプライムデー!自動で買い物するコードを書いてみた
おはようございます。
いきなりですが、今日はAmazonプライム会員限定の大セール、プライムデーですね!
狙ってた商品がなにやら安くなりそうな予感。
でも、私会社員ですから、プライムデーのために会社休んだり、仕事中にAmazon開いて買い物したりなんてできません。そこで、Pythonで狙った商品を自動でカートに入れて、メール通知してくれるコードを書きました。
準備
①seleniumを、pipでインストール
pip install selenium
②chromeのドライバをDL
Downloads - ChromeDriver - WebDriver for Chrome
からchromeのドライバをDLし、適当な場所に置く。
準備は以上!サルでもできますね!
実際のコード
import os import time from selenium import webdriver import datetime as dt import done_message as msg amazon_pass = "xxx" #Amazonのログインパスワード amazon_id = "xxx" #ログインID wanted = "xxx" #欲しい商品のURL url = "https://www.amazon.co.jp/ref=nav_logo" #Amazonのurl path = "xxx/chromedriver" #先ほど適当なところに置いたchromeのドライバの場所 DRIVER_PATH = os.path.join(os.path.dirname(path), "chromedriver") start_time = dt.datetime(2016, 7, 12, 8, 59, 0, 0) end_time = start_time + datetime.timedelta(seconds=3660) #webブラウザを操作するコードを、実行するスタートの時間と、終了の時間今回は9時ちょい前から10時まで。 now = dt.datetime.now() #この時点での時間を変数に格納。 waiting = True #状態を待ち=waitingに。 while waiting == True : if now >=start_time : waiting = False else : now = dt.datetime.now() time.sleep(2) #実行時間以外では、waiting状態となる。 #上のループを抜けると、ブラウザを起動し、ログイン、所定のURLにアクセスする。 browser = webdriver.Chrome(DRIVER_PATH) browser.get(url) browser.find_element_by_id("nav-tools").find_element_by_id("nav-link-yourAccount").click() browser.find_element_by_id("ap_email").send_keys(amazon_id) browser.find_element_by_id("ap_password").send_keys(amazon_pass) browser.find_element_by_id("signInSubmit").click() browser.get(wanted) #タイムセール品かの判定 time_sale = False while now >= start_time and now <= end_time and time_sale == False: if "タイムセール" in browser.page_source : browser.find_element_by_id("a-autoid-0-announce").click() time_sale = True now = dt.datetime.now() else : browser.refresh() now = dt.datetime.now() time.sleep(2) #send e-mail #メールを送るコードをここに書く
昨晩やっつけで書いたコードです。バグ沢山あると思いますが、私の環境では一応動いているので、これで狙っていた商品、ゲットしたいと思います!!
結果は…
結論から言うと、失敗でした(涙)
コード自体はちゃんと動いていました。が、私が欲しかった商品、ブラーバちゃんはセール開始した瞬間カートに全部入ってしまったようです。。。
今回かなりやっつけで書いたコードだったので、次回こういうような機会があれば、狙った商品はかならず仕留める、そういうコードを書きたいものです。
ただwebブラウザをpythonで動かし、ログインの必要なサイトへ入りいろいろ行う、というタスクが出来る&その方法を学べたので、今後私のPythonライフもはかどっていきそうです!