如何更频繁地轮询asda网站(bash)
我制作了一个脚本,用于检查api中的asda home delivery插槽 在这里,我称之为如何更频繁地轮询asda网站(bash),bash,Bash,我制作了一个脚本,用于检查api中的asda home delivery插槽 在这里,我称之为get\u slots.sh 你必须启动tor,如果不启动,那么你必须去掉关于sock5主机名的行(你可以在命令行中用ps看到tor端口号),但是如果你不使用tor,如果他们对你轮询他们的网站感到不安,他们可能会取消你的帐户 很明显,你必须更换顶部的变量 查询参数和api url是通过chrome中的inspector在使用joe public的普通java脚本时发现的,绝密不是 #!/bin/bash
get\u slots.sh
你必须启动tor,如果不启动,那么你必须去掉关于sock5主机名的行(你可以在命令行中用ps看到tor端口号),但是如果你不使用tor,如果他们对你轮询他们的网站感到不安,他们可能会取消你的帐户
很明显,你必须更换顶部的变量
查询参数和api url是通过chrome中的inspector在使用joe public的普通java脚本时发现的,绝密不是
#!/bin/bash
my_postcode="SW1A1AA" # CHANGEME
account_id=18972357834 # JUST INVENT A NUMBER
order_id=22985263473 # LIKEWISE
ua='user_agent_I_want_to_fake'
my_tor_port=9150
#----------------
#ftype="POPUP"
#ftype="INSTORE_PICKUP"
ftype="DELIVERY"
format="%Y-%m-%dT00:00:00+01:00"
start_date=$(date "+$format")
end_date=$(date -d "+16 days" "+$format")
read -r -d '' data <<EOF
{
"data": {
"customer_info": {
"account_id": "$account_id"
},
"end_date": "$end_date",
"order_info": {
"line_item_count": 0,
"order_id": "$order_id",
"restricted_item_types": [],
"sub_total_amount": 0,
"total_quantity": 0,
"volume": 0,
"weight": 0
},
"reserved_slot_id": "",
"service_address": {"postcode":"$my_postcode"},
"service_info": {
"enable_express": false,
"fulfillment_type": "$ftype"
},
"start_date": "$start_date"
},
"requestorigin": "gi"
}
EOF
data=$(echo $data | tr -d ' ')
url='https://groceries.asda.com/api/v3/slot/view'
referer='https://groceries.asda.com/checkout/book-slot?origin=/account/orders'
curl -s \
--socks5-hostname localhost:$my_tor_port \
-H "Content-type: application/json; charset=utf-8" \
-H "Referer: $referer" \
-A "$ua" \
-d "$data" \
$url \
| python -m json.tool
所以是的,我所做的就是egrep-B1
哦,是的,我还顽皮的硬编码2020年没有做适当的正则表达式的一年,因为如果这一切仍然是在2020年后,我可能只是饿死无论如何,所以不想过度工程
不管怎样,你可以看到,一旦它已经给我发了邮件,它仍然会继续运行,因为我想存储json文件,以后可能会对它们进行分析,除非我重新启动它,否则它不会再给我发邮件
不管怎样,我的问题是我的脚本每两分钟检查一次,我希望它检查得更频繁,这样我就可以打败别人。好的,排序好了睡眠120是2分钟,我以为是1.2分钟,对不起,忘了一分钟是60秒,不是100 lol 哦,是的,别担心,我不会每5秒钟做一次,就像
刚才我知道睡眠功能正常,我可以将其更改为60,但这并不比坐在那里的许多人手动加载睡眠功能更频繁相信我……我很高兴你与大家分享了这一“生活黑客”解决方案,尽管这可能与ASDA的条款和条件有关。您可以对脚本进行一些改进,但见鬼,如果它对您来说足够好,那就太好了。您的问题似乎是“如何更频繁地运行脚本”。为此,我们首先需要知道你是如何运行你的脚本的,你在什么操作系统上,等等@alecxs,在一个简短的搜索之后,我在asda.com上找不到任何提示自动使用他们的站点或服务可能被禁止的内容。我认为OP认识到他使用的工具可能会造成伤害是令人鼓舞的,我们最好帮助他保持效率和低影响,而不是忽视这一点。哈哈,我的同事坐在那里登录,整天按ctrl R重新加载,每次我直接转到api时,服务器必须重新提供所有静态内容,这是什么问题呢??
#!/bin/sh
me="my@email.address"
my_smtp_server="smtp.myisp.net:25"
#------------------------------------
mailed=0
ftmp=/tmp/slots.$$
while true
do
date
f=slots/`date +%Y%m%d/%H/%Y-%m-%d_%H%M%S`.json
d=`dirname $f`
[ -d $d ] || mkdir -p $d
./get_slots.sh > $f
if egrep -B1 'status.*"AVAILABLE"' $f > $ftmp
then
echo "found"
if [ $mailed -eq 0 ]
then
dates=`perl -nle '/start_time.*2020-(..-..T..):/ && print $1' $ftmp`
mailx \
-r "$me" -s "asda on $dates lol" \
-S smtp="$my_smtp_server" "$me" < $ftmp
echo "mailed"
mailed=1
fi
fi
sleep 120
done
"slot_info": {
STUFF
"slot_type": null,
"start_time": "2020-06-10T19:00:00Z",
"status": "AVAILABLE",
"total_discount": 0.0,
"total_premium": 0.0,
MORE STUFF