0%

JD-Assistant京东抢购助手

京东抢购助手源代码Fork自tychxn的JD-Assistant京东抢购助手、由于原作者已不再更新、刚好我又有需要、所以在此基础上进行了修改;
京东抢购助手包含登录,查询商品库存/价格,添加/清空购物车,抢购商品(下单),查询订单等功能;
本次主要新增了查询本地生活服务订单的验证码状态等信息.

安装依赖环境

`pip install -r requirements.txt`

JD-Assistant用到的第三方库

requests
Beautiful Soup
PyCryptodome

JD-Assistant主要功能

  • 登陆京东商城(www.jd.com
    • 手机扫码登录
    • 保存/加载登录cookies (可验证cookies是否过期)
  • 商品查询操作
    • 提供完整的地址⇔ID对应关系
    • 根据商品ID和地址ID查询库存
    • 根据商品ID查询价格
  • 购物车操作
    • 清空/添加购物车 (无货商品也可以加入购物车,预约商品无法加入)
    • 获取购物车商品详情
  • 订单操作
    • 获取订单结算页面信息 (商品详情, 应付总额, 收货地址, 收货人等)
    • 提交订单(使用默认地址)
      • 直接提交
      • 有货提交
      • 定时提交
    • 查询订单 (可选择只显示未付款订单)
    • 查询本地生活服务订单中的验证码及其状态(验证码是否已消费)
  • 其他
    • 商品预约
    • 用户信息查询

待完成的功能

  • [✔] 订单验证码查询
  • 抢优惠券

使用教程

初始化

from jd_assistant import Assistant
if __name__ == '__main__':
asst = Assistant()  # 初始化
asst.login_by_QRcode()  # 扫码登陆
asst.get_order_vercode()    #获取本地服务订单验证码及状态

自动在屏幕上显示JD二维码、请扫码登录

直接提交订单示例

from jd_assistant import Assistant

if __name__ == '__main__':
    asst = Assistant()      # 初始化
    asst.login_by_QRcode()  # 扫码登陆
    asst.clear_cart()       # 清空购物车(可选)
    asst.add_item_to_cart(sku_ids='100001324422')  # 根据商品id添加购物车(可选)
    asst.submit_order()     # 直接提交订单

直接提交订单方式不常用,通常用于测试。

定时提交订单示例(常用)

from jd_assistant import Assistant

if __name__ == '__main__':
    asst = Assistant()      # 初始化
    asst.login_by_QRcode()  # 扫码登陆
    asst.clear_cart()       # 清空购物车(可选)
    asst.add_item_to_cart(sku_ids='100001324422')  # 根据商品id添加购物车(可选)
    asst.submit_order_by_time(buy_time='2020-02-16 01:17:59.500', retry=4, interval=5)  # 定时提交订单
    # 3个参数:
    # buy_time: 下单时间,例如:'2019-02-16 01:17:59.500'
    # retry: 下单重复执行次数,可选参数,默认4次
    # interval: 下单执行间隔,可选参数,默认5秒

定时提交订单最为常用,通常用于普通商品到特定时间后变价格购买。

有货提交订单示例

from jd_assistant import Assistant

if __name__ == '__main__':
    sku_ids = '100001324422:1'  # 商品id
    area = '1_72_4211'          # 区域id
    asst = Assistant()          # 初始化
    asst.login_by_QRcode()      # 扫码登陆
    asst.buy_item_in_stock(sku_ids=sku_ids, area=area, wait_all=False, stock_interval=5)
    # 6个参数:
    # sku_ids: 商品id。可以设置多个商品,也可以带数量,如:'1234' 或 '1234,5678' 或 '1234:2' 或 '1234:2,5678:3'
    # area: 地区id
    # wait_all: 是否等所有商品都有货才一起下单,可选参数,默认False
    # stock_interval: 查询库存时间间隔,可选参数,默认3秒
    # submit_retry: 提交订单失败后重试次数,可选参数,默认3次
    # submit_interval: 提交订单失败后重试时间间隔,可选参数,默认5秒
    asst.buy_item_in_stock() 方法执行执行流程:

查询本地生活服务订单中的验证码信息

from jd_assistant import Assistant
if __name__ == '__main__':
    asst = Assistant()  # 初始化
    asst.login_by_QRcode()  # 扫码登陆
    asst.get_order_vercode()    #获取本地服务订单验证码及状态

默认查询最近20条订单信息、区分非本地生活订单数据

本文所涉及到的相关链接地址