# 叮咚抢菜脚本 **Repository Path**: jackieStoreHouse/dingdong-grabber ## Basic Information - **Project Name**: 叮咚抢菜脚本 - **Description**: 上海疫情封控期间,城市流行起“抢菜”的生活方式,于是就有了这个抢菜脚本,兼容 iOS、Android,支持多台设备同时“抢菜”。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-06-22 - **Last Updated**: 2022-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 叮咚抢菜脚本 上海疫情封控期间,市民们流行起“抢菜”的生活方式。作为一名开发人员,自然用技术手段代替手速,于是就有了这个脚本。起初只为自用,得知“五・一”之后仍有很多朋友买不到菜,线上“抢菜”依然紧张,因此便将脚本分享出来,并撰写了这份小白都能读懂的教程,供大家自由使用。 #### 适用情形: - Mac OS + iOS - Mac OS / Windows + Android 请依照本教程逐步操作,遇到问题欢迎在 **[Issues](https://gitee.com/arnie/dingdong-grabber/issues)** 中交流。 如果这个脚本对您有帮助,可以赞赏支持,谢谢! ## 原理说明 将移动设备连接至电脑,以自动化测试的方式在设备上模拟点击,从而实现自动“抢菜”。与发送HTTP请求方式所不同的是不需要定期查看和更新 Cookie 信息,操作难度较低。 ## 使用方法 ### 一、搭建环境 #### 运行环境 - Mac OS + iOS: **Python + Xcode + WDA** - Mac OS / Windows + Android: **Python + ADB** 请根据您的使用情形,选择搭建相应的运行环境。以下是相关软件的安装方法。 #### 安装 `Python` - Mac OS: 如果已经安装有Homebrew,打开**终端**执行以下指令安装即可。 ```sh brew install python ``` 如果未安装Homebrew,请通过以下代码安装,完成后再按上述方法安装 `Python`。 ```sh /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" ``` - Windows: 1. 根据您的 Windows 版本(64位还是32位),从 [Python 官网](https://www.python.org/downloads/windows/) 下载相应的安装程序。 2. 双击 exe 文件进行安装,特别要注意勾上 “Add Python 3.x to PATH”,然后点击 `Install Now` 即可。 #### 安装 `Xcode` 在 Mac 电脑的 **App Store** 上搜索 “Xcode” 进行安装即可。 #### 安装 `WDA` 请阅读👉 [WebDriverAgent 的安装与运行](help/WDA.md) #### 安装 `ADB` 请阅读👉 [ADB 的安装与运行](help/ADB.md) ### 二、初始化脚本 1. 克隆(下载)此抢菜脚本到本地,进入 “dingdong-grabber” 目录: ```sh # 假设 “dingdong-grabber” 在你的 Mac OS 桌面 cd ~/Desktop/dingdong-grabber ``` 2. 安装依赖: ```sh pip3 install -r requirements.txt -i https://pypi.doubanio.com/simple/ ``` (Windows 用户请将 “pip3” 改为 “pip”) 3. 连接设备 - iOS 1. WDA 安装并成功配置后,在 **Xcode** 运行 **Test** (快捷键:`⌘ + u`)。 2. 打开 `grabber.py` 文件,设置 `driver_url` 变量: ```python # WebDriver URL (仅用于iOS) driver_url = '您所获取的 Server URL' ``` - Android 1. 使 Android 手机进入 **开发者模式**,并打开 **开发者选项**,开启以下开关: - USB 调试 - USB 安装 - USB调试 (安全设置) 2. USB 连接方式设置为: - 设备文件管理 (MTP) 3. 将手机通过 USB 数据线连接至电脑,若出现弹窗请选择 `USB 用于 传输文件`。 4. 查看连接的设备列表: ```sh adb devices ``` > “List of devices attached” 的下方为设备列表信息,左侧是设备编号。 5. 在设备上安装 **atx-agent**: ```sh python3 -m uiautomator2 init ``` (Windows 用户请将 “python3” 改为 “python”) > 此时设备上将会安装上一款 **ATX** 应用。 ### 三、“抢菜” 1. **设置默认设备** 打开 `grabber.py` 文件,设置 `device_name`、`device_code` 变量: ```python # 默认设备名称: iOS 或 Android device_name = '您的设备类型' # 默认设备编号: iOS UDID 或 Android的设备号 device_code = '您的设备编号' ``` 2. **执行抢菜脚本** 在叮咚买菜app中选购商品,进入购物车页面,准备“抢菜”。 - 默认设备“抢菜” ```sh python3 grabber.py ``` - 自定义“抢菜” ```sh python3 grabber.py --device=设备类型 --code=设备编码 ``` > **注:** > Windows 用户请将以上指令中的 “python3” 改为 “python”; > 如果电脑已经连接多台设备,且已经安装相应的运行环境,可通过自定义“抢菜”指令实现多设备同时运行。