#転売屋に手を焼かされていませんか?
わたしは__リングフィットを手に入れて痩せる予定だった__のに、
手に入らなくて学習が手につかず、太りすぎて1年以上無職に陥ってしまいました。
という事で、今回は
スクリプトを動かすとアマゾンに自動的にログインして、
リングフィットがAmazon.co.jpが直接販売しているケースに限り購入してくれる
というスクリプトを作りました。これを自宅PCのcronやAWSのLambdaで走らせれば、
あなたはリングフィットが新品で売っているかどうかを逐一チェックする必要がなくなります。
(今回はスクリプトのみの掲載で、cronの説明は省略しています。)
cronの解説の要望があったら言って下さい。
#注意点
1.事前にクレジットカードの設定はしておいて下さい。(ギフト券で買う方はちょっと改修すれば済みます)
2.2段階認証は外しておいて下さい(リスク回避の為にサブアカウントでギフト券オンリーにするのがオススメです)
OS:Windows10
GoogleChrome バージョン: 70.0.3538.110(Official Build) (64 ビット)
Python:3.70
Selenium Webdriver:この記事を書いた時点で最新のもの
chromedriver.exe:この記事を書いた時点で最新のもの
※スクリプトと同じフォルダに'chromedriver.exe'を置いてください。
from selenium import webdriver
from bs4 import BeautifulSoup
import time
import requests
import sys
driver = webdriver.Chrome()
# 欲しい商品のURL
# リングフィットアドベンチャー(本番環境時コメント外して下さい)
#driver.get('https://www.amazon.co.jp/%E4%BB%BB%E5%A4%A9%E5%A0%82-%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%95%E3%82%A3%E3%83%83%E3%83%88-%E3%82%A2%E3%83%89%E3%83%99%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC-Switch/dp/B07XV8VSZT/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%95%E3%82%A3%E3%83%83%E3%83%88&qid=1584144601&sr=8-1')
# ジョイコン(テスト用。本番環境時コメントアウトして下さい)
driver.get('https://www.amazon.co.jp/Joy-Con-L-%E3%83%8D%E3%82%AA%E3%83%B3%E3%83%91%E3%83%BC%E3%83%97%E3%83%AB-R-%E3%83%8D%E3%82%AA%E3%83%B3%E3%82%AA%E3%83%AC%E3%83%B3%E3%82%B8/dp/B07VGPSM7T/ref=sr_1_19?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&qid=1584144652&sr=8-19')
page_source = driver.page_source
soup = BeautifulSoup(page_source, 'html.parser')
id_merchant_info = soup.find(id="shipsFromSoldBy_feature_div").find("a").string
print(id_merchant_info)
# 発送元がAmazon.co.jpなら購入 それ以外なら購入しない
if id_merchant_info == ("Amazon.co.jp"):
print("買う")
else :
print("買わない")
sys.exit()
elem_login_btn = driver.find_element_by_xpath('//*[@id="buy-now-button"]')
elem_login_btn.click()
elem_mail = driver.find_element_by_xpath('//*[@id="ap_email"]')
elem_mail.send_keys('ID')
continue_btn = driver.find_element_by_xpath('//*[@id="continue"]')
continue_btn.click()
elem_password = driver.find_element_by_xpath('//*[@id="ap_password"]')
elem_password.send_keys('PASSWARD')
submit_btn = driver.find_element_by_xpath('//*[@id="signInSubmit"]')
submit_btn.click()
# 支払い方法(ギフト券の方はここでギフト券に切り替えて下さい)
submit_btn2 = driver.find_element_by_xpath('/html/body/div[5]/div/div[2]/div[3]/div/div[2]/div[1]/form/div[2]/div/div/div/span/span/input')
submit_btn2.click()
# お急ぎ便があるケース
submit_btn3 = driver.find_element_by_xpath('//*[@id="shippingOptionFormId"]/div[1]/div[2]/div/span[1]/span/input')
submit_btn3.click()
order_btn = driver.find_element_by_xpath('//*[@id="placeYourOrder"]/span/input')
# 購入確定ボタン(本番環境時コメントアウト外して下さい)
#order_btn.click()
今回は以上になります。何かご要望があったらご意見下さい。