9价9价

酶和ATP 2021年11月30日 1,301次浏览

博客很久没更新,于是我就来水篇文章。
最近看小X书经常推荐9价有关的文章,仔细研究了下只可惜我是男生现在还打不了,不然我也去接种。身边有一定经济实力的小姐姐基本也都想打,但是粥少和尚多,9价基本被黄牛垄断。于是我做了个shell爬虫,当某地的预约界面网页更新时推送通知到微信,便于第一时间抢购。不过这简直耍猴啊,总共才放15个。

shell脚本,复制到本地改后缀为sh,还有使用前请先安装jq,用来解析json。
具体实现在注释里,有些地方确实奇奇怪怪,这是因为我对shell还是一知半解,不过能跑就行吧XD。

data=$( curl 'https://URL.com/zs/h5/yuyue/getYuyueDataList' \
  -H 'authority: URL.com' \
  -H 'sec-ch-ua: "Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'content-type: application/x-www-form-urlencoded' \
  -H 'x-requested-with: XMLHttpRequest' \
  -H 'sec-ch-ua-mobile: ?1' \
  -H 'user-agent: Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Mobile Safari/537.36' \
  -H 'sec-ch-ua-platform: "Android"' \
  -H 'origin: https://URL.com' \
  -H 'sec-fetch-site: same-origin' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-dest: empty' \
  -H 'referer: https://URL.com/zs/h5/yuyue/yuyueList?id=_oYy9g&templateKey=' \
  -H 'accept-language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7' \
  -H 'cookie: hdj_source_key=hdj; SERVERID=6d17e866f6f8c03d041bea7e9882758a|1638112852|1638112429' \
  --data 'id=_oYy9g&pageid=1&rows=30&stime=&etime=&keyword=&tags=%5B%5D&source_key=hdj&env=h5' \
  --compressed)
# jq 解析json,获取开始时间,不太会传参,就分了两部
now=$(cat 9jiadata.txt | jq -r '.["data"][0].stime' )
date=$(date -d @$now +'%Y%m%d %H:%M:%S')
#获取其他信息
max_num=$(cat 9jiadata.txt | jq -r '.["data"][0].max_num')
left=$(cat 9jiadata.txt | jq -r '.["data"][0].left')
detail=$(cat 9jiadata.txt | jq -r '.["data"][0].detail')
yoid=$( cat 9jiadata.txt | cut -d'"' -f16)
# todo 构建预约链接
yuyueurl=$"/yuyue/pages/yuyueSuccess/yuyueSuccess?yoid=$yoid&id=' + that.yuyueId + '&stime=' + that.selectedDateTime.selectedStimeStamp + '&etime=' + that.selectedDateTime.selectedEtimeStamp + '&yodid="

old=`cat 9jia.txt`

# 元数据存放在 9jiadata.txt ,防止多次爬取
cat > 9jiadata.txt << END_TEXT
$data
END_TEXT

# echo "$date"
if [ "$now" == "$old" ]
then
    echo '没更新!'
    #那就更新old
    cat > 9jia.txt << END_TEXT
$now
END_TEXT
else
    echo '更新了!'
    curl -L -G --data-urlencode content="某地9价,时间$date。总数$max_num,剩余$left,详情$detail。预约链接 https://URL.com/zs/h5/yuyue/yuyuetime?id=_oYy9g&yoid=$yoid&yodid=" "API"
    cat > 9jia.txt << END_TEXT
$now
END_TEXT
fi

仅限技术交流分享用,所以关键信息已经被删除。