叮咚抢菜-派送时段监听及推送工具🔧

简介: 叮咚抢菜-派送时段监听及推送工具🔧

前言


人在上海,居家一个月,感谢政府和公司时不时的“空投”,主食是不缺的,但是菜真的不够吃,于是这几天也开始加入了叮咚抢菜的大军,然而几天了一次都抢不到;

昨晚上无意中打开叮咚买菜,发现竟然有个时间段可以派送,抓紧买了一袋馄炖皮(别的几乎都卖完了),这个事情提醒了我,叮咚买菜的可派送时间段(运力)是动态变化的,那么我只要写一段程序,监听其变化,在有空余的派送资源时候提醒下我,然后在手动去下单,理论上应该可以买到菜;

今早上 6 点 再一次抢菜失败后,我忍不住了,爬起来开始实践这个半自动外挂的想法。


获取叮咚买菜的 api


我只需要获取可派送时间段这一个 api 就好了,我是 iphone 手机,所以需要找一个合适的抓包工具,我使用 stream 来替代 pc上的fiddle, 有几个注意点:

1、默认安装后是无法抓取 https 类型的,需要在设置里进行相关配置:

如果您要抓取 HTTPS 的请求,需要先启动抓包,然后安装 CA 证书后,去设置-通用-关于-证书信任设置 里信任 CA,才可以查看请求的内容。


1687779297795.png


2、叮咚买菜 App 里面是无法抓取 maicai.api.ddxq.mobi 此域名下的接口的,需要抓包小程序的版本。

然后我顺利的拿到了此接口,url: 'https://maicai.api.ddxq.mobi/order/getMultiReserveTime', stream 提供了 curl 的拷贝,将其导入到 postman 中,验证了是可正常返回结果的,然后将curl 的格式进行转换为 node request 的版本。


1687779290043.png


搭建 node 项目


新建一个git 仓库,将我们的代码放进去,通过node 环境执行一下,然后会发现控制台的console 是乱码的,这个问题经过排查是由于一个 header 配置 Accept-Encoding: 'gzip, deflate, br'导致的,gzip压缩会导致乱码,我将其删掉,再次验证结果就正常了。

然后写一个轮询函数,定时来查询此接口,然后对响应数据进行解析,当发现可派送时间段有空余的时候,提示到我,消息提示我用的 Bark 这个ios 系统下的开源工具。


消息推送


使用 Bark 来实现消息推送到我的 iphone 手机,Bark是一个开发者的专属推送工具,免费、稳定,在 appleStore 中下载 bark 应用后,打开将生成专属 BarkId,如图,复制链接,通过 get post 等形式都可以触发消息推送事件。


1687779283028.png


成果展示


1687779267765.png

1687779275027.png


总结


希望能通过这个小程序能早点买到菜吧,我真的太难了。

--更新4th:增加支持 美团买菜运力监控。

--更新3th:为避免风险,暂不做下单了,有兴趣的,自行获取代码研究吧。

--更新2th:自动下单 Api 正在测试中,请关注。

--更新1th: 程序执行2小时后,第一次抢到菜。

目录
相关文章
|
SQL JSON Prometheus
14-TDengine安装报警模块实现报警监测Webhook回调与邮件推送
14-TDengine安装报警模块实现报警监测Webhook回调与邮件推送
600 0
14-TDengine安装报警模块实现报警监测Webhook回调与邮件推送
|
运维 Linux Go
grafana 8.x配置日报定时发送配置及踩坑经过
grafana 8.x配置日报定时发送配置及踩坑经过
1291 0
grafana 8.x配置日报定时发送配置及踩坑经过
|
消息中间件 存储 负载均衡
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
对于钉钉OA事件订阅出现的网络波动导致的通知丢失问题
135 1
|
数据采集 监控 Linux
一日一技:不用轮询,基于事件监控文件变动
一日一技:不用轮询,基于事件监控文件变动
129 0
|
程序员 C#
【C#】SignalR之主动推送信息的简单解决方案
在本篇文章中,将讲讲C#如何使用SignalR通讯 Core下的SignalR实现原理一样,只是写法不一样,主动推送消息的场景使用:页面登录后台管理系统,最新订单信息的通知等
315 0
|
运维 监控
WGCLOUD运维监控方案 - 如何设置主机10分钟内恢复正常就不进行提醒
这个,我们只要把agent上报时间改成10分钟就好了
|
前端开发 Java 应用服务中间件
基于websocket的实时通告功能,推送在线用户,新登录用户
SpringBoot 部署与Spring部署都有一些差别,但现在用Srpingboot的公司多,SpringBoot创建项目快,所以使用该方式来讲解,有一个问题就是开发WebSocket时发现无法通过@Autowired注入bean,一直为空。
基于websocket的实时通告功能,推送在线用户,新登录用户
|
机器学习/深度学习 移动开发 NoSQL
Day 11: AeroGear 推送服务器:使应用的通知推送变得简单
在今天的“30天学习30种新技术”, 我打算去扩展一下昨天开发的 PhoneGap 应用,加上推送通知的功能。推送通知允许应用去通知或者警告用户,即使是在程序没有打开的情况下。例如,如果我们有一个允许通知推送的 Twitter 应用,当 Twitter 上有人提到你或者关注你了,Twitter 应用也会推送一个通知给你,即使这个应用没有在运行。
217 0
Day 11: AeroGear 推送服务器:使应用的通知推送变得简单
|
监控 数据库
zabbix告警持续频繁发送历史消息解决方法
zabbix持续频繁的发送历史的告警消息,一晚上告警内容高达1.7w条,严重影响查看真正出现问题的告警信息。 产生此问题的原因: 告警消息积压堆积,一直处于重试状态。 触发器的确存在,但是目标监控主机的状态是正常的,只要触发器触发的问题存在,那么就会一直发生告警。
1158 0