1 Star 3 Fork 1

theajack / dingdong-node

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

叮咚买菜自动下单 Nodejs 脚本

注意事项

1. 本项目仅供技术学习和交流,纯属学习使用,不可用作商业行为,任何违法违规造成的问题与本人无关

2. 不要长时间运行, runInterval时长调长一些,不然有可能账号会被风控,导致无法获取购物车信息。

0. 前言

2022年初,由于上海疫情告急,出现了全民线上抢菜盛况

叮咚买菜每6:00,8:30开放让人们睡不好还基本抢不到

于是研究了一下叮咚买菜小程序,搞了这么一个脚本可以自动下单脚本

快速开始

git clone git@github.com:theajack/dingdong-node.git
cd dingdong-node
npm i

# 按照 2.填入用户配置 自行配置用户信息

npm start

1. 特性

  1. 自定义配置(用户相关信息需要自行抓包获取填入)
  2. 下单成功发送提醒邮件,可以像闹钟一样的提醒(需要配置两个邮箱)- 非必需
  3. 支持配置高峰和非高峰策略
  4. 支持配置最长运行时间,防止长时间运行被风控
  5. 定时运行(借助crontab)- 非必需

2. 填入用户配置

注意事项

  1. 本脚本针对的是叮咚买菜小程序,填入用户信息之后请不要再使用其他端,否则信息可能会失效
  2. 使用 charles 抓包, 教程

抓包环境安装配置好之后,在叮咚买菜小程序上刷新购物车,找到一条 /cart/index的请求,找 query-string,基本需要的参数都在里面了

module.exports = {    
    // 叮咚买菜小程序用户信息
    'uid': '',
    'longitude': '',
    'latitude': '',
    'station_id': '',
    'city_number': '',
    's_id': '',
    'openid': '',
    'device_token': '',

    // 以下为邮箱配置 非必需 如果要启动定时发送邮件提醒可以选一下 详情见readme.md
    'fromEmail': '', // 发送邮件的邮箱
    'toEmail': '', // 接受邮件的邮箱
    'emailCode': '', // 邮箱授权码, QQ邮箱在 设置 -> 账户 -> POP3/SMTP服务 中开启
    'emailHost': 'smtp.qq.com', // 邮箱服务器地址 如非qq邮箱 请自行更改

    // 抢菜策略,
    'runMode': 'traffic', // normal 为非高峰期策略,traffic 为高峰期策略
    'runInterval': 1000, // 每一个请求的轮询间隔
    'maxTime': 5, // 单次运行最长时间 防止被风控 单位分钟

    'useLogger': false, // 是否开启log,一般为调试使用
};

3. 邮件通知 非必需

邮件通知需要准备两个邮箱,这里以两个QQ邮箱为例

另外还需要使用iphone自带的邮件APP

发送邮箱

发送邮箱需要到 设置 => 账户 => 开启 POP3/SMTP服务;

然后将授权码和邮箱配置到 emailCode 和 fromEmail

接收邮箱

接受邮箱需要到 设置 => 账户 => 开启 IMAP/SMTP服务,复制下授权码

然后邮件APP绑定QQ邮箱,需要填入授权码

然后将邮箱配置到 toEmail

iphone绑定QQ邮箱教程;

另外,如要开启强通知(类似电话铃声),需要在iphone设置里面邮件提示声音

这个功能搭配服务器定时任务,可以有很多种玩法,比如固定时间给你发送通知,收到评论、回复通知到手机,比一般的APP通知提醒更好,可以像闹钟一样的开启

4. 配置抢菜策略

见config.js

{
    'runMode': 'normal', // normal 为非高峰期策略,traffic 为高峰期策略
    'runInterval': 1000, // 每一个请求的轮询间隔 可以自行修改
    'maxTime': 5, // 单次运行最长时间 防止被风控 单位分钟
}

5. 定时运行 非必需

以下方案适用于mac和linux,windows系统请自行找方案

命令行运行

crontab -e

在vim窗口输入

{min} {hour} * * * {nodePath} {path}/dingdong-node/main.js

min和hour表示时间,比如每天5:50开始运行,就是:50 5

nodePath 为你本地node程序的绝对目录

path为当前项目的绝对目录

定时运行教程

The MIT License (MIT) Copyright (c) 2022 - present tackchen 本项目仅供技术学习和交流,纯属学习使用,不可用作商业行为,任何违法违规造成的问题与本人无关 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

叮咚买菜nodejs自动下单脚本,支持邮件强通知和定时任务,支持捡漏和高峰模式 展开 收起
JavaScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/theajack/dingdong-node.git
git@gitee.com:theajack/dingdong-node.git
theajack
dingdong-node
dingdong-node
master

搜索帮助