昨天下午在家看欧洲杯重播,越看越搓火。官方app那个比分更新慢得跟乌龟爬似的,进球五分钟才弹通知,黄花菜都凉透喽!我就琢磨着自己搞个实时比分工具,能比电视直播快个几秒也行。
先试现成的
手机里七八个体育app挨个点开测试。把通知权限全开了,电视放直播,手机摆旁边盯着。结果发现更离谱:要么广告弹窗把比分遮得严严实实,要么推送比解说员慢半拍,还有个更绝——葡萄牙进球都庆祝完了,它突然弹出个「C罗射门被扑!」敢情我是活在平行宇宙?
自己动手薅数据
半夜两点摸出笔记本开始折腾:
- 第一招:爬官网赛程表 - 打开开发者工具就傻了,比分数字根本不在html里,全是js动态生成的
- 第二招:抓接口请求 - 倒是找到几个带比分的api,可返回的json里塞满了加密字符串
- 第三招:上浏览器插件 - 应用商店里下了三个评分最高的,不是要付费订阅就是得关注公众号
气得我差点把键盘砸了。用微信语音哄骗在鹅厂做前端的表弟,让他支点野路子。
绝地求生方案
表弟发来个chrome插件源码包:「哥你装个油猴自己改脚本,公司逮到我就完犊子了!」按他给的教程:
- 先在控制台插了个MutationObserver监控DOM变动
- 盯准网页右上角那个芝麻大的比分控件
- 强制把字体从9px改成48px
- 用node写了个本地服务每200毫秒截图推送到手机
凌晨五点法国对波兰那场突然测试成功!电视里姆巴佩刚启动突破,我手机哐哐震出红点:「1-0!!!」兴奋得把媳妇吵醒了,枕头直接飞脸上。
现在像特工似的看球
电脑开静音放直播,手机倒扣桌上。全靠震动次数猜比分:短震是角球,长震是换人,连震三下必进球!前天德国那场提前十秒收到警报,扯嗓子冲楼下烧烤摊喊:「老板快看!穆勒要单刀了!」整条街就我手机在进球瞬间狂抖,周围人跟看神仙似的瞪我。缺点也不是没有——现在充电宝得挂腰带上,手机一天震没三块电池。