一个功能完善的京东商品秒杀工具,支持预约、秒杀、全自动化执行等功能。
推荐使用:无需安装Python环境,开箱即用!
从GitHub Release下载:
1. 访问 Releases页面
2. 下载最新的 京东茅台秒杀系统_vX.X.X_完整版.zip
3. 解压到任意目录
4. 编辑 config.ini 配置文件(重要!)
5. 双击 京东茅台秒杀系统.exe 运行
直接下载链接: - 下载最新版本
jd_seckill_new/
├── main.py # 主程序入口
├── config.ini # 配置文件
├── requirements.txt # 依赖包列表
├── EXE打包工具.py # Windows EXE打包工具
├── README.md # 项目说明
├── bug修复.md # 问题解决方案
├── maotai/ # 核心功能模块
│ ├── jd_spider_requests.py # 主要业务逻辑
│ ├── timer.py # 时间同步
│ ├── config.py # 配置管理
│ └── jd_logger.py # 日志管理
├── helper/ # 辅助功能模块
│ ├── jd_helper.py # 工具函数
│ ├── secure_config.py # 安全配置管理
│ ├── device_fingerprint.py # 设备指纹收集
│ └── selenium_device_fingerprint.py # Selenium设备指纹
├── error/ # 异常处理
│ └── exception.py # 自定义异常
├── cookies/ # 登录信息存储
├── tests/ # 测试文件目录
│ ├── functional/ # 功能测试
│ ├── integration/ # 集成测试
│ ├── unit/ # 单元测试
│ └── archive/ # 归档测试文件
└── docs/ # 技术文档
├── 京东风控机制分析与安全策略.md # 安全策略详解
├── 极高概率抢购方案.md # 高级抢购策略
├── Selenium设备指纹收集系统.md # Selenium技术文档
└── 自动配置功能说明.md # 配置功能说明
克隆项目
bash
git clone https://github.com/your-repo/jd_seckill_new.git
cd jd_seckill_new
安装依赖
bash
pip install -r requirements.txt
如果安装较慢,可使用清华源:
bash
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
📝 注意: 新版本包含Selenium依赖,首次运行时会自动下载Chrome驱动程序
编辑 config.ini 文件,填写必要配置:
```ini [config] # 商品ID(从商品页面URL获取) sku_id = 100012043978
# 抢购时间(精确到毫秒) buy_time = 09:59:59.500
# 京东风控参数(自动获取,无需手动填写) eid = fp =
# 风控安全策略(新增) risk_level = BALANCED max_processes = 8 max_retries = 100
[messenger] # 微信推送开关 enable = true # Server酱密钥 sckey = your_sckey_here ```
bash
python main.py从京东商品页面URL获取,例如:
- 商品页面:https://item.jd.com/100012043978.html
- sku_id:100012043978
✨ 全自动获取,无需手动配置!
系统现已集成Selenium自动设备指纹收集功能: - 🤖 自动获取:程序启动时自动从京东获取真实设备指纹 - 🔄 自动更新:参数自动写入配置文件并热加载 - ✅ 真实有效:使用真实浏览器环境,确保参数有效性 - 🛡️ 智能回退:多重获取方案,确保始终能获取有效参数
📝 说明: 首次运行时会自动下载Chrome驱动并获取设备指纹,整个过程完全自动化
格式:HH:MM:SS.fff(精确到毫秒)
- 例如:11:59:59.200 表示提前800ms开始抢购
选择适合的安全等级:
- CONSERVATIVE: 保守策略,风控风险极低,适合新手
- BALANCED: 平衡策略,推荐大多数用户使用
- AGGRESSIVE: 激进策略,高成功率但风控风险较高
支持Server酱推送服务:
1. 关注"Server酱"微信公众号
2. 获取SCKEY密钥
3. 在配置文件中设置:
ini
[messenger]
enable = true
sckey = SCT283354TAVZ68H2gfMfTdCuw9UiO7Oml
运行程序后,会显示功能菜单:
功能列表:
1.预约商品
2.秒杀抢购商品
3.全自动化执行(预约+秒杀)🤖
首次使用或登录过期时: 1. 程序会自动弹出二维码 2. 使用京东APP扫描二维码 3. 确认登录后程序自动继续
系统提供三种风控安全等级,在成功率和安全性之间找到最佳平衡:
系统智能模拟真实用户行为,有效降低风控检测概率:
全自动化模式是本系统的核心功能,具有以下特性:
🤖 全自动化模式 - 状态面板
⏰ 当前时间: 2025-06-20 17:00:00
📊 当前状态: 距离预约时间还有 16小时59分钟
🎯 下一步操作: 等待预约时间
⏳ 剩余时间: 16:59:23
📋 预约状态: ⏳ 待执行
🔥 秒杀状态: ⏳ 待执行
🔐 登录状态: ✅ 已登录
👤 当前用户: jd_username
支持多种通知方式:
程序采用多重备选时间源: 1. 京东页面服务器时间(主要) 2. 世界时钟API(备选) 3. 淘宝时间API(备选) 4. 本地时间(最后备选)
时间精度可达毫秒级,确保抢购时机准确。
原因:时间同步接口失效 解决:程序已自动修复,使用多重备选时间源
原因:图片查看器未正确配置
解决:手动打开项目目录下的 qr_code.png 文件
原因:京东接口返回格式变更 解决:程序已增强JSON解析,支持多种格式
原因:Server酱配置错误或API变更
解决:
- 检查sckey是否正确
- 确认使用正确的API版本(新版用SCT开头)
- 运行测试脚本验证:python test_wechat_push.py
原因:Cookie验证过于严格,不兼容新版Cookie格式 解决:程序已完全修复,支持新旧版本Cookie自动识别 - ✅ 支持传统Cookie格式(pt_key, pt_pin) - ✅ 支持新版Cookie格式(pin, pinId, unick) - ✅ 智能验证机制,自动适配不同版本
原因:登录验证逻辑与京东新版Cookie不匹配 解决: - 程序已更新Cookie验证逻辑 - 自动识别新版登录Cookie(pin + pinId) - 兼容传统登录Cookie(pt_key + pt_pin) - 登录成功后自动关闭二维码窗口
原因:用户体验不够友好,Windows"照片"应用无法自动关闭 解决: - ✅ 多重关闭机制:PowerShell窗口检测 + 进程终止 + 文件操作 - ✅ 精确进程识别:专门识别Windows"照片"应用(Photos.exe) - ✅ 智能检测:使用psutil检测包含qr_code.png的进程 - ✅ 强制关闭:通过文件重命名强制关闭打开文件的程序 - ✅ 多重保障:4种不同方法确保二维码窗口能够关闭
原因:Windows 10/11默认"照片"应用进程名称识别错误 解决: - 正确识别Photos.exe、PhotosApp.exe、dllhost.exe等进程 - 使用psutil精确检测包含qr_code文件的进程 - 添加PowerShell脚本检测窗口标题 - 文件操作强制关闭机制作为最后保障
原因:触发京东风控机制 解决: - 降低风险等级(改为CONSERVATIVE) - 检查小白信用分是否过低 - 等待24小时后再试 - 提升账户信用和购买记录
原因:风控策略过于激进 解决: - 立即停止抢购程序 - 正常使用京东服务一段时间 - 提升小白信用分 - 下次使用更保守的策略
项目提供多个测试脚本:
# 测试基础功能
python test_fix.py
# 测试时间同步
python test_time_sync.py
# 测试微信推送
python test_wechat_push.py
# 测试全自动化模式
python test_auto_mode.py
# 打包Windows EXE文件 🆕
python 打包工具.py
程序运行时会生成详细日志,关键信息:
- INFO: 正常操作信息
- WARNING: 警告信息,程序可继续运行
- ERROR: 错误信息,可能影响功能
本仓库发布的jd_maotai_seckill项目中涉及的任何脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。
本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。
ChinaVolvocars 对任何脚本问题概不负责,包括但不限于由任何脚本错误导致的任何损失或损害.
间接使用脚本的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, ChinaVolvocars 对于由此引起的任何隐私泄漏或其他后果概不负责。
请勿将jd_maotai_seckill项目的任何内容用于商业或非法目的,否则后果自负。
如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关脚本。
以任何方式查看此项目的人或直接或间接使用jd_maotai_seckill项目的任何脚本的使用者都应仔细阅读此声明。ChinaVolvocars 保留随时更改或补充此免责声明的权利。一旦使用并复制了任何相关脚本或jd_maotai_seckill项目,则视为您已接受此免责声明。
您必须在下载后的24小时内从计算机或手机中完全删除以上内容。
本项目遵循GPL-3.0 License协议,如果本特别声明与GPL-3.0 License协议有冲突之处,以本特别声明为准。
您使用或者复制了本仓库且本人制作的任何代码或项目,则视为
已接受此声明,请仔细阅读
您在本声明未发出之时点使用或者复制了本仓库且本人制作的任何代码或项目且此时还在使用,则视为已接受此声明,请仔细阅读
通过我这段时间的使用(2020-12-12至2020-12-17),证实这个脚本确实能抢到茅台。我自己三个账号抢了四瓶,帮两个朋友抢了4瓶。 大家只要确认自己配置文件没有问题,Cookie没有失效,坚持下去总能成功的。
根据这段时间大家的反馈,除了茅台,其它不需要加购物车的商品也不能抢。具体原因还没有进行排查,应该是京东非茅台商品抢购流程发生了变化。
为了避免耽误大家的时间,先不要抢购非茅台商品。
等这个问题处理好了,会上线新版本。
根据12月14日以来抢茅台的日志分析,大胆推断再接再厉返回Json消息中resultCode与小白信用的关系。
这里主要分析出现频率最高的90016和90008。
{'errorMessage': '很遗憾没有抢到,再接再厉哦。', 'orderId': 0, 'resultCode': 90016, 'skuId': 0, 'success': False}
{'errorMessage': '很遗憾没有抢到,再接再厉哦。', 'orderId': 0, 'resultCode': 90008, 'skuId': 0, 'success': False}
| 案例 | 小白信用 | 90016 | 90008 | 抢到耗时 |
|---|---|---|---|---|
| 张三 | 63.8 | 59.63% | 40.37% | 暂未抢到 |
| 李四 | 92.9 | 72.05% | 27.94% | 4天 |
| 王五 | 99.6 | 75.70% | 24.29% | 暂未抢到 |
| 赵六 | 103.4 | 91.02% | 8.9% | 2天 |
推测返回90008是京东的风控机制,代表这次请求直接失败,不参与抢购。
小白信用越低越容易触发京东的风控。
从数据来看小白信用与风控的关系大概每十分为一个等级,所以赵六基本上没有被拦截,李四和王五的拦截几率相近,张三的拦截几率最高。
风控放行后才会进行抢购,这时候用的应该是水库计数模型,假设无法一次性拿到所有数据的情况下来尽量的做到抢购成功用户的均匀分布,这样就和概率相关了。
综上,张三想成功有点困难,小白信用是100+的用户成功几率最大。
请安装python 3.8 运行此项目 - Python 3.8
pip install -r requirements.txtpip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/(1)eid和fp找个普通商品随便下单,然后抓包就能看到,这两个值可以填固定的
随便找一个商品下单,然后进入结算页面,打开浏览器的调试窗口,切换到控制台Tab页,在控制台中输入变量
_JdTdudfp,即可从输出的Json中获取eid和fp。
不会的话参考原作者的issue https://github.com/zhou-xiaojun/jd_mask/issues/22
(2)sku_id,DEFAULT_USER_AGENT
sku_id已经按照茅台的填好。cookies_string现在已经不需要填写了DEFAULT_USER_AGENT可以用默认的。谷歌浏览器也可以浏览器地址栏中输入about:version 查看USER_AGENT替换
(3)配置一下时间
现在不强制要求同步最新时间了,程序会自动同步京东时间
但要是电脑时间快慢了好几个小时,最好还是同步一下吧
以上都是必须的.
tips: 在程序开始运行后,会检测本地时间与京东服务器时间,输出的差值为本地时间-京东服务器时间,即-50为本地时间比京东服务器时间慢50ms。 本代码的执行的抢购时间以本地电脑/服务器时间为准
(4)修改抢购瓶数
代码中默认抢购瓶数为2,且无法在配置文件中修改 如果一个月内抢购过一瓶,最好修改抢购瓶数为1 具体修改为:在
jd_spider_requests.py文件中搜索self.seckill_num = 2,将2改为1
根据提示选择相应功能即可
抢购是否成功通常在程序开始的一分钟内可见分晓!
搜索日志,出现“抢购成功,订单号xxxxx",代表成功抢到了,务必半小时内支付订单!
# 修复前:只支持传统Cookie
key_cookies = ['pt_key', 'pt_pin']
# 修复后:支持新旧版本Cookie
key_cookies = ['pt_key', 'pt_pin', 'pin', 'pinId', 'unick']
# 新版Cookie优先检查
if 'pin' in cookies and 'pinId' in cookies:
return True # 新版登录有效
# 修复前:错误的强制状态设置
try:
self.qrlogin.login_by_qrcode()
self.qrlogin.is_login = True # ❌ 错误的强制设置
except Exception as e:
self.qrlogin.is_login = False # ❌ 错误的强制设置
# 修复后:保留原始可靠逻辑
self.qrlogin.login_by_qrcode() # ✅ 简单可靠
# 新增功能:登录成功后自动关闭二维码窗口
if self.qrlogin.is_login:
try:
from helper.jd_helper import close_image_windows
close_image_windows() # 自动关闭二维码窗口
except Exception as e:
logger.warning(f'关闭二维码窗口失败: {e}')
```python def close_image_windows(): # 方法1: PowerShell窗口标题检测 powershell_cmd = ''' Get-Process | Where-Object {$_.MainWindowTitle -like "qr_code"} | Stop-Process -Force '''
# 方法2: 多种图片查看器进程关闭
image_viewers = [
'Microsoft.Photos.exe', # Windows 10/11 照片应用
'Pho
$ claude mcp add jd_seckill_new \
-- python -m otcore.mcp_server <graph>