1

私はウェブサイトで在庫のあるアイテムを捕まえるのに大変な時間を過ごしています。私はそれを約30分かそこらで逃し続けます。

Nikonストアページ( http://shop.nikonusa.com/store/nikonusa/en_US/pd/productID.249538300)のコンテンツをプルして、灰色のときに自分自身(address@gmail.com)にアラートを電子メールで送信するにはどうすればよいですか。「購入場所」ボタンは、黄色の「今すぐ購入」ボタンに置​​き換えられました(ここで確認できます:http ://shop.nikonusa.com/store/nikonusa/en_US/pd/productID.226487200 )。これはbashスクリプトから可能ですか、それとも複雑すぎますか?

ありがとうございました!

4

2 に答える 2

1

curlを使用してWebページを取得し、grepを使用してボタンの代替テキストを検索できます...

#!/bin/bash
#D800
x=$( curl -s http://shop.nikonusa.com/store/nikonusa/en_US/pd/productID.249538300 | grep 'alt="Buy Now"')
#D7000 (for testing)
#x=$( curl -s http://shop.nikonusa.com/store/nikonusa/en_US/pd/productID.226487200 | grep 'alt="Buy Now"')
if [ ! -n "$x" ]
then
    echo Not Available
    exit 1
fi
echo "Get clicking" | mail -s "D800 Available" you@example.com
于 2012-06-10T06:50:57.703 に答える
0

私はwgetと一緒に何か醜いものになってしまいました。

誰かが同じ問題に遭遇した場合、半消毒されたコードは以下のとおりです。

#!/bin/bash
while [ ! -f mailready ]
do
sleep 450
echo -e "\n Trying wget [URLHERE]"
wget -N [URLHERE]
        if grep -q buy-now [Downloaded URLfile]
        then
                echo -e "\n Buy now button found at [URL, DATE]\" > scriptbuffer
                cat mailheader scriptbuffer > mailready
                cat mailready| msmtp RECIPIENT@gmail.com
                echo -e "\nBuy-now button found... ending"
        else
                echo -e "\nNo Buy-now button found"
        fi
done

何をしているのかわからないので、信じられないほどうまくいきました。約7分おきにチェックするように設定し、2、3時間で注文できました。

于 2012-06-10T08:54:16.137 に答える