Skip to content

Instantly share code, notes, and snippets.

@billzhuang
Last active February 8, 2019 16:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save billzhuang/8188806a547e2dadb1557ae1383eaf8c to your computer and use it in GitHub Desktop.
Save billzhuang/8188806a547e2dadb1557ae1383eaf8c to your computer and use it in GitHub Desktop.
amazon stock checker
#!/bin/bash
#CHROME_HEADER="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36"
GC_CONTROLLER="GameCube-Controller_B07DJX3Y47"
GC_ADAPTER="GameCube-Adapter_B07DJX3ZR8"
# replace to your hook url
HOOK_URL="https://outlook.office.com/webhook/xxxyyyzzz"
# generate random user agent
HEADER1="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
HEADER2="User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"
HEADER3="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
HEADER4="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36"
HEADER5="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0"
HEADER6="User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"
HEADER7="User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.59.12) Gecko/20160044 Firefox/52.59.12"
HEADER8="User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"
RANDOM_NO=$((1 + RANDOM % 8))
#HEADERS=($HEADER1 $HEADER2 $HEADER3 $HEADER4 $HEADER5 $HEADER6 $HEADER7 $HEADER8)
var="HEADER$RANDOM_NO"
CHROME_HEADER="${!var}"
#send msg to M$ Teams
callback()
{
ITEM_NAME=$1
ITEM_NO=$2
POST_DATA=$(printf '{
"@context": "https://schema.org/extensions",
"@type": "MessageCard",
"themeColor": "0072C6",
"title": "%s is in stock",
"text": "Click below **Button** to buy in Amazon!",
"potentialAction": [
{
"@type": "OpenUri",
"name": "Buy it",
"targets": [
{ "os": "default", "uri": "https://www.amazon.com/dp/%s/" }
]
}
]
}' "${ITEM_NAME}" "${ITEM_NO}")
#echo "${POST_DATA}"
curl -s -H "Accept: application/json" -H "Content-Type: application/json" -d "$POST_DATA" -X POST $HOOK_URL
}
# send msg to telegram
tele()
{
ITEM_NAME=$1
POST_URL="https://api.telegram.org/bot7788:xxyyzz/sendMessage?chat_id=@billzh&tex$
curl -s $POST_URL
}
for ITEM in $GC_CONTROLLER $GC_ADAPTER
do
ITEM_NAME="$(cut -d'_' -f1 <<<"$ITEM")"
ITEM_NO="$(cut -d'_' -f2 <<<"$ITEM")"
echo "$ITEM_NAME" with code: $ITEM_NO
RESULT=$(curl -s --compressed -H "$CHROME_HEADER" https://www.amazon.com/gp/offer-listing/$ITEM_NO?m=ATVPDKIKX0DER | grep 'Price + Shipping' | wc -l)
#echo $RESULT
if [ "$RESULT" -ne "1" ]
then
echo "NOT FOUND"
else
callback "$ITEM_NAME" $ITEM_NO
tele "$ITEM_NAME"
echo "FOUND IT"
fi
done
@billzhuang
Copy link
Author

after run 1 day, amazon block my server ip, all page all return:

    To discuss automated access to Amazon data please contact api-services-support@amazon.com.
    For information about migrating to our APIs refer to our Marketplace APIs at https://developer.amazonservices.com/ref=rm_5_sv, or our Product Advertising API at https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html/ref=rm_5_ac for advertising use cases.

@billzhuang
Copy link
Author

  1. add dynamic user-agent selector
  2. add telegram channel notification

@billzhuang
Copy link
Author

JP Amazon: AN1VRQENFRJN5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment