用飞书和油猴脚本创建苹果官翻新机到货提醒
M1 的MacBook air 是我认为苹果有史以来最具性价比的笔记本电脑,革命性的M1芯片机器轻巧强劲,无风扇的设计运行安静如鸡。即便现在M2已经问世,但是M2的性能提升并没有价格的提升那么明显,而且这个刘海设计嘛,还是算了。
穷困如我,很想消费一台,为了将来的可持续发展,又想要16G内存的电脑。最后,我决定买一台16G内存256G硬盘的M1 Air,但是官网9499的价格让我犹豫再三。
据说官翻机只有8069配合24期免息可以说是大赚,我翻了翻翻新机的页面,却没有发现16G M1 Air的影子。走遍互联网的天涯海角,才发现这个选项要抢。再第4897次刷新之后,我依然没有看到我要的机器,我流泪了。
我突然想到,作为初级码农,为什么不能尝试自动化得解决这个问题呢?在一周的上班摸鱼中,我深入思考了抢购翻新机的底层逻辑,对我之前手动刷新进行了复盘,决定以TamperMonkey(GreaseMonkey或者其他猴子都可以)插件为抓手,用飞书打通生态闭环,对标Refurb-Tracker,用JavaScript对抢购打法赋能,用这一套组合拳短平快打破存货信息屏障。
工具介绍
下面我具体说明一下这些工具是怎么使用的
1.Refurb-Tracker
https://refurb-tracker.com/ 这个网站会告诉你每个翻新机的链接,即便没有存货。他也可以通过邮件通知你翻新上货,不过我没有尝试他的服务,争分夺秒的事情用邮件通知我,准没戏。但是我们能用它获取我们要监控的页面地址在哪,比如我想要的金色16G M1 Air的地址是 https://www.apple.com.cn/shop/product/G12A0CH/A 。
2.TamperMonkey
TamperMonkey(或者GreaseMonkey)是一个运行在浏览器上的脚本管理器,用户可以使用它在浏览器里面加载一些自定义脚本,我们打算用它来执行一些定期刷新浏览器获取存活状态并通知的功能。
3.飞书
飞书在这里的角色是一个寻呼机,它负责监听TamperMonkey脚本发出的通知,让手机震动提醒你起床抢购。为什么是飞书呢?因为飞书提供Webhook让我们可以自定义发出消息。其实Slack,Telegram 或者其他一切提供API发通知的APP都可以,不过,这里是中国。
好了,工具介绍齐全,话不多说我们开始吧。
详细步骤
步骤一:配置飞书,设置webhook地址。
首先,我们需要安装,注册飞书,并建立一个只有自己的群聊
然后添加一个机器人,
选择自定义机器人并取一个响亮的名字
点击添加,会告诉你配置一个webhook并给你一个地址。默念三遍,迅速背下来这个地址不要告诉任何人。
这个地址是通往成功的钥匙,我们用这个地址可以往群里发送任何消息。不妨打开一个黑黑的终端测试一下。
在终端输入下面这一段代码,注意用你刚背下来的自己的webhook地址替换掉下面这段代码里[YOUR_HOOK_ADDR] 这一串(包含方括号也要替换)。
curl -X POST https://open.feishu.cn/open-apis/bot/v2/hook/[YOUR_HOOK_ADDR] -H 'Content-Type: application/json' -d '{"msg_type": "text","content": {"text": "test message: Hello Money"}}'
点击回车,群里马上能收到这条消息
第二步:从refurb-tracker 找到想要购买的sku的链接
选择地区,型号点击check 按钮,并从下面的列表找出自己想要购买的设备。并找到链接
第三步:在TamperMonkey添加监控脚本持续刷新
打开需要监控的的网页,打开tamperMonkey按钮添加一个脚本
会弹出一个代码编辑器的窗口,默认会有如下代码
复制粘贴下面这段代码将原来的代码全替换掉:
// ==UserScript==
// @name RefurbishedAppleMonitor
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://www.apple.com.cn/shop/product/G12A0CH/A
// @icon https://www.google.com/s2/favicons?sz=64&domain=apple.com.cn
// @grant none
// ==/UserScript==
const WEBHOOK_URL = "<https://open.feishu.cn/open-apis/bot/v2/hook/[YOUR_HOOK_ADDR]>"
const webhookNotify=()=>{
let data = {"msg_type": "text","content": {"text": "穷鬼,快起床买电脑"}}
fetch(WEBHOOK_URL, {
method: "POST",
headers: {'Content-Type': 'application/json'},
body: JSON.stringify(data)
}).then(res => {
console.log("Request complete! response:", res);
});
}
//10 messages in 10 seconds.
const webhookNotifyLoop = (counter=0)=>{
if(counter < 10){
console.log('counter:',counter)
webhookNotify();
setTimeout(()=>{webhookNotifyLoop(counter+1)}, 1000);
}
}
const checkIsStockAvailable=()=>{
var buyButton = document.getElementById("add-to-cart");
return(!buyButton.disabled)
}
const checkAndAlert = ()=>{
if(checkIsStockAvailable()){
console.log('Stock available :)')
webhookNotifyLoop()
}else{
console.log('Still out of stock:(')
}
}
(function() {
checkAndAlert();
setTimeout(()=>{ location.reload(); }, 60*1000); //refresh every 60 seconds.
})();
然后做一些修改:
1. match这一行改成需要监听的链接。
// @match https://www.apple.com.cn/shop/product/G12A0CH/A
2. 还是用刚背下来的自己的webhook地址替换掉代码里[YOUR_HOOK_ADDR] 这一串。
代码修改好了,保存退出编辑窗口。
打开抢购窗口不要关闭,可以看到右上角的猴子图标有一个红色的数字1,说明抢购脚本在运行,页面会每分钟刷新检查最新存货状态。
第四部:安装飞书手机客户端,收到通知,抢购收货!
美丽的金色电脑
参考资料:
手把手教你用飞书 Webhook 打造一个消息推送 Bot - 少数派
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~















山上没篱笆
校验提示文案
janeyre
校验提示文案
十七贝勒
校验提示文案
法学民工
校验提示文案
鱼丁糸不是苏打绿
校验提示文案
子佚先生
校验提示文案
喋喋不休
校验提示文案
Godisagirl老天不公
校验提示文案
烤山芋_
校验提示文案
必必
校验提示文案
漫天风雪
校验提示文案
布列松
校验提示文案
值友1689653538
校验提示文案
hellonkitty
校验提示文案
忘记名字
校验提示文案
皮猴他爸
校验提示文案
小张你来回答
校验提示文案
abcing
校验提示文案
梦渡
校验提示文案
值友8219567182
校验提示文案
Downer要厚住
校验提示文案
末末乌
校验提示文案
桃子迷路了
校验提示文案
supercoco
校验提示文案
stan1341
校验提示文案
独静幽雅
校验提示文案
值友7178258053
校验提示文案
胖子bj
校验提示文案
Damoklis
校验提示文案
努力摆脱负债
校验提示文案
咖啡小冰
校验提示文案
值友7401546246
校验提示文案
值友9439516252
校验提示文案
Tony9999
校验提示文案
居然是饼干
校验提示文案
5年没签到
校验提示文案
laou
校验提示文案
值友8219567182
校验提示文案
法学民工
校验提示文案
梦渡
校验提示文案