您现在的位置是:烟消火灭网 > 热点
python京东秒杀脚本
烟消火灭网2026-10-17 07:40:24【热点】4人已围观
简介京东秒杀商品库存少、抢的人多,纯手工点基本没戏。用 Python 写个脚本,核心就三件事:登录态、定时、提交订单。别想得太复杂,下面直接拆。 先说登录。京东的登录校验绕不开,最省事的办法是用已登录的
京东秒杀商品库存少、京东脚本抢的秒杀人多,纯手工点基本没戏。京东脚本用 Python 写个脚本,秒杀核心就三件事:登录态、京东脚本定时、秒杀提交订单。京东脚本别想得太复杂,秒杀下面直接拆。京东脚本
先说登录。秒杀京东的京东脚本登录校验绕不开,最省事的秒杀办法是用已登录的 Cookie。打开浏览器登录京东,京东脚本F12 进 Application 面板,秒杀把 `pt_key` 和 `pt_pin` 两个值抠出来。京东脚本这两个就是你的身份凭证,脚本里带上它们,请求就跟你手动操作没区别。注意 Cookie 有有效期,一般几天到几周,过期了重新拿一次就行。
headers = { "Cookie": "pt_key=xxx; pt_pin=xxx;", "User-Agent": "Mozilla/5.0 ...", "Referer": "https://seckill.jd.com/" } 拿到 Cookie 后,先验证一下能不能访问订单页。如果返回的是登录页 HTML,说明 Cookie 废了,别浪费时间往下跑。
接下来是秒杀接口。京东秒杀页面的商品信息通过一个叫 `seckill/seckillCheck` 的接口校验,提交订单走 `trade.jd.com` 的 `submitOrder`。这两个接口的参数不固定,每次活动可能变。靠谱的做法是用浏览器抓包,找到实际请求的 URL 和 payload,原样复制到脚本里。别去网上抄几年前的代码,接口早换了。
定时这块有个坑。京东服务器时间和你本机时间可能差几百毫秒,差这点就抢不到。脚本启动后先请求一次京东首页,从响应头的 `Date` 字段拿到服务器时间,算出与本机的偏移量。之后所有倒计时都以服务器时间为准。
import requests, time from datetime import datetime resp = requests.head("https://www.jd.com") server_time = datetime.strptime(resp.headers["Date"], "%a, %d %b %Y %H:%M:%S GMT") offset = (server_time - datetime.utcnow()).total_seconds() 到了抢购时刻,别只发一次请求。京东的接口有并发限制,但可以在秒杀开始前 100 毫秒左右开始高频轮询,间隔 50 到 100 毫秒发一次,持续两三秒。请求太多会被风控,太少又抢不到。我自己的经验是间隔 80 毫秒、总共发 20 次左右比较稳。
提交订单那一步,payload 里通常包含 `skuId`、`num`、`token` 这些。`token` 是从秒杀页 HTML 里提取的,每次刷新都会变。所以脚本流程是:先 GET 秒杀页拿 token,再 POST 提交。别把 token 写死。
还有一点,京东对同一账号的请求频率有监控。如果只是自己抢一两件,问题不大。但如果用多线程狂发,轻则返回“活动太火爆”,重则账号被限制。别贪。
最后说结果判断。提交订单后返回 JSON,`success` 为 true 且 `orderId` 存在,才算抢到。如果返回“无货”或“排队中”,说明没抢上,脚本可以停了。别反复重试,没意义。
整个脚本不到 100 行,核心逻辑就这些。难点不在代码,在于抓准接口和参数。每次大促前京东都会改一点东西,所以脚本要跟着调。想一劳永逸是不可能的。
很赞哦!(25)
上一篇: 初中心理健康知识的课程设计与学科渗透
下一篇: 专科收入高的专业排名







