[bash]AMAZONの商品が安くなったら起こして をシェルスクリプト化した


前回、Amazonで欲しい商品の最安値をワンライナーで取得しましたが、ロギングとメール通知を一撃でやっつけたいのでシェルスクリプト化しました。ソースはこちら。ライセンスはMITです。

AmazonPriceChecker (github)

AmazonPriceChecker (github)

■ 初期設定

メール通知用に、次の5つの変数に値を代入します。

MAILFROM=admin@example.com #メール送信元アドレス
MAILFROMNAME="管理人: ぬるぽぽぽ" #メール署名に表示する名前
MAILTO=nullpopopo@example.com # メール宛先アドレス
MAILTONAME="ぬるぽぽぽ" #メール本文に表示する宛名
MTA=mail.example.com #メールサーバー名

MTAとして動いているサーバーがあれば、MTAの変数はlocalhostでよいでしょう。プログラムの変更箇所は最低これだけです。

あと、ログ格納ディレクトリ(変数 LOGDIR)はDropboxの下に作るようにしているのですが、これじゃ都合悪い、という方はよしなに変更してくださいね。

■ 使い方

AmazonPriceChecker をPATHの通ったディレクトリ(例: ${HOME}/bin )に置いて実行権をつけてから、Amazonの価格比較ページと教えて欲しい価格の2つを引数に渡して実行するだけです。(これは前回と同じ)

試しに1000円以下だったらメール通知するようにして実行します。

AmazonPriceChecker "http://www.amazon.co.jp/gp/offer-listing/B0019JNU5I/ref=dp_olp_new?ie=UTF8&condition=new" 1000
1461571217      2016/04/25      17:00:17        B0019JNU5I      http://www.amazon.co.jp/gp/offer-listing/B0019JNU5I/ref=dp_olp_new?ie=UTF8&condition=new   [2CS] 黒松内 水彩の森(2L×6本)×2箱       1076

今回実行したときは1000円以上(1076円)だったので、ログ(と標準出力)に吐かれるだけでした。それでは2000円以下だったらメール通知するように引数を変えて実行してみましょう。

AmazonPriceChecker の実行時は価格のしきい値以下なので、メール通知されるようになりました。もちろんログにも記録されています。

AmazonPriceChecker_MAIL_001

試しに、マーケットプレイスに出ていない(Amazonだけが売っている)商品のリンクで試してみましたが、ちゃんと動いているようです。もちろんみんな大好きカラーコーンだっていけます!

Amazonの商品URIから10桁の英数字を抜き出してみたらそれなりに取得できていました。やったぜ!

AmazonPriceChecker_MAIL_002

自分だけでAmazonの価格推移をロギングしたり、欲しい商品が安くなったら起こして欲しいときは AmazonPriceChecker を使うと捗るのではないでしょうか。

でわー。