京东商品库存、价格监控
仅作相关邮件通知,没有自动下单功能
将京东的接口简单二次封装,组合成需要的价格、库存、预约、秒杀监控功能,并将监控情况发送邮件通知。
- 查看商品信息
- 检查商品是否有库存、处于预约、秒杀中
- 监控商品是否有货,自动发送有货通知邮件
- 商品开始预约、秒杀监控
- 商品价格变化监控
实现方式与监控商品是否有货类似
项目本质上就是个WebApi,一切操作都是基于swagger来操作。
这是一个ASP.NET 6 WebApi项目,仅需要安装.Net 6运行环境,Linux、Windows均支持。
下载ASP.NET Core 运行时即可。
发送监控情况需要指定发件人邮箱,在appsettings.json 配置文件中MailSetting节点配置。
- Address 发件人邮箱地址
- DisplayName 发件人名称
- Host 发件人Smtp服务地址
- Port Smtp端口
- EnableSsl 是否使用SSL通讯
- UserName 发件人账号名(一般为邮箱地址)
- Password 发件人账号密码(或邮箱授权码)
appsettings.json示例
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"MailSetting": {
"Address": "[email protected]",
"DisplayName": "JDGuardian",
"Host": "smtp.qq.com",
"Port": 587,
"EnableSsl": true,
"UserName": "[email protected]",
"Password": "qwertyuiop"
}
}
执行JDGuardian即可,然后按以下地址进入swagger
swagger接口均已写明注释,不再重述。仅挑几个特别说明一下
京东查看商品价格、库存等信息都必须带上收货地址,这个area是一个地区id组合字符串,表示省、市、区等组合起来的地址,如19_1601_50258_51885表示了广东_广州_白云区_城区这个地址。
从接口area接口可以逐步获取到每个地区的下属地区,一直到没有下属地区为止,然后把前面每一步拿到的地区id拼起来就是一个有效的地区参数,但不用带上国家(至少中国不需要)。
商品在京东内部的唯一id
此时post过去的数据中,mail表示如果有货时将把通知邮件发到这个地址,span表示轮询间隔(检查是否有货实际上是不停地调用库存接口check/isStock),单位为秒。
{
"mail": "[email protected]",
"span": 60,
"skuId": 100016148888,
"area": "19_1601_50258_51885"
}
如上参数即表示商品100016148888如果在19_1601_50258_51885这个地区有货,将把通知邮件发送到邮箱[email protected],每次间隔60s判断一次是否有货。
发送请求后,如果返回一个GUID字符串,则为添加成功,此时就会开始按指定间隔监控是否有货。
- XSX 100011513445
- XSX & 黑色游戏耳机套装 100016346817
- Xbox Series 手柄 磨砂黑 100016148888
- Xbox Series 手柄 磨砂黑 USB-C线缆 100016148810
- Xbox Series 手柄 磨砂黑 无线适配器 100016148908
- Xbox Series 手柄 冰雪白 100016148864
- Xbox Series 手柄 波动蓝 100009153053
- Xbox Series 手柄 极光蓝 100013915485
- Xbox Series 手柄 电光黄 100021197380
- Xbox Series 手柄 锦鲤红 100017833496
- Xbox 无线适配器 5028827
来源于WX-JDCheck
巨硬你能不能硬一回?!