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


    前言

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

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

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

    获取叮咚买菜的 api

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

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

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

    image.png

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

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

    截屏2022-04-10 14 50 51

    搭建 node 项目

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

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

    消息推送

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

    image.png

    成果展示

    截屏2022-04-10 13 33 44

    image.png

    总结

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

    -- 更新3: 为避免风险,不做下单了。。,有兴趣的自行获取 github 代码 研究(烦请点个 star)

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

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


    本文只是个人技术分享,请任何人不要用于商业用途,若有任何侵权问题,请联系本人删除。

    觉得有帮助请给个 star 吧!
    github 程序源码

    合集:我的 github 博客及案例源代码

  • 相关阅读:
    js正则表达式验证【引用网址】
    Chart控件的使用实例
    C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
    C#进阶系列——WebApi 接口参数不再困惑:传参详解
    C#进阶系列——WebApi 路由机制剖析:你准备好了吗?
    【UiPath 中文教程】02
    八幅漫画理解使用JSON Web Token设计单点登录系统
    JSON Web Token(缩写 JWT) 目前最流行的跨域认证解决方案
    webservice 教程
    IBM MQ 使用指南
  • 原文地址:https://www.cnblogs.com/zhoumingjie/p/16132276.html
Copyright © 2020-2023  润新知