眼看公司发的口罩就要用完了,JD上的口罩也是一罩难求,刚收到到货通知,就已经被抢售一空。今天发现一个不错的项目,好东西就是要和大家分享嘛,项目地址:https://github.com/weiyigithub/jd-assistant
代码的功能就是循环查询你添加的商品有没有货,有货的话自动帮你下单,你只用时不时的看看有没有待付款的订单就行啦。我用树莓派来运行代码,24小时不间断查询,应该能抢到了吧,哈哈。
下面简单讲讲步骤
1.下载代码到树莓派:
git clone https://github.com/weiyigithub/jd-assistant.git
2.进到项目目录,先安装依赖:
pip3 install -r requirements.txt
3.在订单结算页面(需要先登录账号)打开开发者工具,在Console中执行以下 Javascript 代码,来获取eid, fp,track_id, risk_control参数,填入config.ini文件中
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}`);
4.添加商品id到main.py中:
商品链接中的数字就是商品的id
5.更改main.py中的area id:
在源码路径的area_id文件夹中可以找到自己所在地的area id
6.我建议更改main.py文件中轮询间隔时间,默认5s太短,JD服务器有反爬虫机制,别问我怎么知道的,现在公司电脑都还不能上JD。
下面是我参数
sku_ids = '100010209872,100010131982:2' # 商品id
area = '22_1930_50949_52153' # 区域id
asst = Assistant() # 初始化
asst.login_by_QRcode() # 扫码登陆
asst.buy_item_in_stock(sku_ids=sku_ids, area=area, wait_all=False, stock_interval=20) # 根据商品是否有货自动下单
然后运行代码,第一次运行需要扫码登陆JD账号
python3 main.py
成功下单三台手机,原本想搞10台的,无奈JD不许我买。(如果商品没有现货,程序会间隔20s查询一次)
最后,感谢小助手程序的作者,无私的开源出来,让我们增加了一丝丝买到口罩的几率。