Skip to content

京东预约抢购助手用法

Mr-Wang119 edited this page May 4, 2020 · 1 revision

⚠️预约抢购助手适用于京东需要提前预约才能获取抢购资格进行抢购的商品。

⚠️预约抢购过程中会清除购物车中的商品。

1. 初始化

1.1 获取eid, fp, track_id, risk_control

  1. 打开京东PC端官网,并登陆
  2. 随便加一个商品进入购物车,然后点击 去结算
  3. 订单结算页面打开开发者工具,在Console中执行以下 Javascript 代码:
var eid = $('#eid').val();
var fp = $('#fp').val();
var trackId = getTakId();
var riskControl = $('#riskControl').val();
console.log(`eid = ${eid}\nfp = ${fp}\ntrack_id = ${trackId}\nrisk_control = ${riskControl}`);
  1. 用得到4个值替换config.ini中相应的值 (直接填入相应空白处即可,不需要引号引起来)
[config]
# eid, fp, track_id, risk_control 四个参数必须填写,具体请参考 wiki-常见问题
# 随意填写可能导致订单无法提交等问题
eid = 
fp = 
track_id = 
risk_control = 

这些参数有效期暂不确定,建议定期更换,主要是为了避免一些下单时可能出现的问题。有时取不出值,重新点击 去结算即可。

1.2 配置提醒邮箱地址

  1. config.ini中,修改mail_addr为想要接收提醒邮件的邮箱地址
[mail]
enable = true
mail_addr = 
  1. jdEmail.py中,修改发信方信息,即发送提醒邮件的地址、密码 (使用qq邮箱以外的邮箱还需要配置发信服务器和端口)
# 用于构建邮件头
# 发信方的信息:发信邮箱,QQ 邮箱授权码
from_addr = ''
password = ''
# 发信服务器
smtp_server = 'smtp.qq.com'
# 开启发信服务,这里使用的是加密传输
server = smtplib.SMTP_SSL(host=smtp_server)
server.connect(smtp_server, 465)

1.3 获取区域id

  1. 在商品页面(例如 https://item.jd.com/1178879.html) 打开开发者工具,在 Console 中执行以下 Javascript 代码:
var el = document.getElementsByClassName("ui-area-text")[0]
var area_name = el.getAttribute("title")
var area_id = el.getAttribute("data-id").replace(/-/g, "_")
console.log(area_name)
console.log(area_id)
  1. 用得到的区域id替换main.py中的area
area = ''  # 区域id

2. 添加商品

2.1 获取商品id并确定预约抢购时间

首先,需要获取需要抢购的商品id。例如:某个商品的网页url为 https://item.jd.com/1178879.html ,那么商品id就是 1178879

2.2 填写商品id及预约抢购时间

main.py中,

  • sku_ids中填写待抢购商品的id,中间通过","分隔
  • sku_ids中填写相应商品的抢购数量(抢购一般会限制购买数量),中间通过","分隔
  • all_reserve_time中填写相应的预约时间,格式为"HH:MM:SS.fff",中间通过","分隔
  • all_buy_time中填写相应的购买时间,格式为"HH:MM:SS.fff",中间通过","分隔
sku_ids = '65708238590,100011521400,65624145328,100006394713,100011551632'  # 商品id
sku_nums = '1,1,1,1,1'
all_reserve_time = '10:59:30.000,20:59:30.000,10:59:30.000,14:59:30.000,14:59:30.000'
all_buy_time = '17:00:00.050,10:00:00.050,15:00:00.050,20:00:00.050,20:00:00.050'

在填写购买时间时,例如网页显示的购买时间为17:00:00,设置的购买时间可以稍微推迟几十毫秒,例如17:00:050,避免因为服务器时间和本地时间不一致,导致第一次抢购失败的问题,提升抢购的成功率。

3 开始抢购

在根目录下运行python main.py

在到达预定预约和抢购时间时,会自动开始进行预约和抢购。若预约/抢购时间已经过去,会自动跳过此商品。若抢购成功,在终端会看到状态变化,同时会收到提醒邮件。

抢购成功后,仍会处在未付款状态,需要尽快进入订单页面付款。