这是一个基于Python开发的京东商品库存监控工具,用于帮助用户及时了解商品库存和价格变化信息。该工具仅用于学习和研究目的,请勿用于商业用途。
- 用户认证:支持京东账号安全登录
- 商品监控:实时监控商品库存和价格变化
- 风险控制:内置风控检测和防护机制
- 消息通知:支持多种通知方式(WebHook、邮件等)
- 日志记录:详细的操作和异常日志记录
在开始使用本工具之前,请确保您的系统满足以下要求:
-
Python环境要求
- 安装Python 3.7或更高版本
- 可以通过以下命令检查Python版本:
python --version
如果未安装Python,请访问Python官网下载并安装。
-
获取项目代码
- 使用git克隆项目到本地:
git clone https://github.com/your-username/jd-stock-monitor.git
- 或直接下载项目压缩包并解压
-
安装依赖包
- 进入项目目录:
cd jd-stock-monitor
- 使用pip安装所需依赖:
pip install -r requirements.txt
注意:如果安装过程中出现网络问题,可以尝试使用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
正确的配置对于工具的运行至关重要,请按照以下步骤进行设置:
-
创建配置文件
- 复制配置文件模板:
cp .env.example .env
- 如果是Windows系统,可以直接复制.env.example并重命名为.env
-
编辑配置文件 使用文本编辑器打开.env文件,配置以下信息:
a) 账号信息(必填):
JD_USERNAME=your_username # 京东账号(建议使用手机号) JD_PASSWORD=your_password # 账号密码
b) 监控配置(必填):
TARGET_SKUS=["100016034372","100016034374"] # 商品ID列表,可添加多个 AREA_ID=1_2810_51081_0 # 配送地址ID(可从京东URL中获取) CHECK_INTERVAL=10 # 检查间隔时间(秒),建议不要设置太小
c) 通知设置(可选):
# 邮件通知配置 SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SMTP_USERNAME=your_email@gmail.com SMTP_PASSWORD=your_email_password NOTIFY_EMAIL=receiver@example.com # WebHook通知配置 WEBHOOK_URL=https://your-webhook-url
-
配置说明
- AREA_ID获取方法:
- 打开京东网页版
- 选择配送地址
- 从URL中获取地址ID参数
- CHECK_INTERVAL建议值:
- 正常监控:10-30秒
- 高频监控:5-10秒(注意风控风险)
- AREA_ID获取方法:
完成配置后,按照以下步骤运行程序:
-
启动监控
python main.py
-
首次运行说明
- 程序会自动尝试登录京东账号
- 如果遇到验证码,会在控制台显示提示信息
- 登录成功后会开始监控配置的商品
-
运行状态说明 程序运行后会显示以下信息:
- 登录状态
- 商品监控列表
- 库存检查结果
- 通知发送状态
-
登录相关问题 a) 遇到验证码:
- 程序会自动处理简单的图形验证码
- 对于滑动验证码,需要手动操作:
- 查看控制台提示信息
- 按照提示在浏览器中完成验证
- 验证完成后程序会自动继续
b) 账号被风控:
- 调整CHECK_INTERVAL值,建议增加到30秒以上
- 在.env中配置代理IP:
PROXY=http://your-proxy-ip:port
- 更换账号尝试
-
监控相关问题 a) 无法获取商品信息:
- 确认商品ID是否正确
- 检查网络连接
- 验证配送地址ID是否有效
b) 库存检测不准确:
- 增加CHECK_INTERVAL值
- 确认商品是否限定区域销售
- 检查是否被商品反爬虫机制拦截
-
通知相关问题 a) 邮件通知失败:
- 检查SMTP配置是否正确
- 确认邮箱安全设置是否允许SMTP
- 尝试使用应用专用密码
b) WebHook通知失败:
- 验证WebHook地址是否可访问
- 检查网络连接状态
- 查看WebHook服务器日志
-
其他常见问题 a) 程序异常退出:
- 查看logs目录下的日志文件
- 检查配置文件格式是否正确
- 确保系统Python环境正常
b) 内存占用过高:
- 检查是否同时监控过多商品
- 适当增加检查间隔时间
- 考虑清理日志文件
- 本工具仅用于学习研究,禁止用于商业用途
- 请遵守京东平台的使用规则和条款
- 建议使用自己的京东账号进行测试
- 合理设置监控频率,避免触发风控
- 定期检查和更新配置信息
本项目仅用于技术学习和研究目的,使用本工具产生的任何后果由使用者自行承担。
├── jd_seckill/
│ ├── auth/ # 认证模块
│ │ ├── login.py # 登录逻辑
│ │ └── risk_control.py # 风控检测
│ ├── monitor/ # 监控模块
│ │ ├── stock_checker.py # 库存检测
│ │ └── time_sync.py # 时间同步
│ ├── order/ # 订单模块
│ │ ├── submit_order.py # 下单逻辑
│ │ └── payment.py # 支付处理
│ ├── utils/ # 工具库
│ │ ├── request_util.py # 请求封装
│ │ ├── captcha.py # 验证码处理
│ │ └── log_handler.py # 日志管理
│ └── config.py # 配置文件