百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

新必应用python写一个京东抢茅台的脚本,太实用了

off999 2024-12-28 14:42 33 浏览 0 评论

最近玩新必应比较上瘾,闲来无事的时候刷京东看到抢茅台呢,就试试看,结果老是失败,就想着让新必应用python写一个京东抢茅台的脚本,由于我是非科班,也不知道这个脚本能不能运行,就贴出来给大神们看看:

# coding=utf-8

import requests

import time

import json

import random

import datetime


# 请填写以下信息

username = "" # 京东账号

password = "" # 京东密码

eid = "" # 浏览器F12获取

fp = "" # 浏览器F12获取

sku_id = "100012043978" # 茅台商品ID

buy_time = "2021-01-08 10:00:00" # 抢购时间


# 登录请求头

login_headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',

'Referer': 'https://passport.jd.com/new/login.aspx?ReturnUrl=https%3A%2F%2Fwww.jd.com%2F',

'Connection': 'keep-alive',

}


# 抢购请求头

buy_headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36',

'Referer': f'https://item.jd.com/{sku_id}.html',

'Connection': 'keep-alive',

}


# 登录会话

session = requests.session()


# 获取登录二维码

def get_qrcode():

url = "https://qr.m.jd.com/show"

params = {

"appid": 133,

"size": 147,

"t": int(time.time() * 1000),

}

response = session.get(url=url, params=params, headers=login_headers)

if response.status_code == 200:

with open("qrcode.png", "wb") as f:

f.write(response.content)

print("请打开qrcode.png扫码登录")

else:

print("获取二维码失败")


# 检查是否扫码登录成功

def check_login():

url = "https://qr.m.jd.com/check"

    params = { "callback": 
f"jQuery{random.randint(1000000, 9999999)}",
        
"appid": 
133,
        
"token": session.cookies.get(
"wlfstk_smdl"),
        
"_": 
int(time.time() * 
1000),
    }
    response = session.get(url=url, params=params, headers=login_headers)
    
if response.status_code == 
200:
        result = response.text
        
if 
"二维码未扫描" 
in result:
            
print(
"请扫描二维码")
            
return 
False
        
elif 
"二维码已扫描" 
in result:
            
print(
"请在手机上确认登录")
            
return 
False
        
elif 
"二维码已过期" 
in result:
            
print(
"二维码已过期,请重新获取")
            
return 
False
        
elif 
"success" 
in result:
            
print(
"登录成功")
            
return 
True
        
else:
            
print(
"未知错误")
            
return 
False
    
else:
        
print(
"检查登录失败")
        
return 
False
# 获取用户信息
def 
get_user_info():
    url = 
"https://passport.jd.com/user/petName/getUserInfoForMiniJd.action"
    params = {
        
"callback": 
f"jQuery{random.randint(1000000, 9999999)}",
        
"_": 
int(time.time() * 
1000),
    }
    response = session.get(url=url, params=params, headers=login_headers)
    
if response.status_code == 
200:
        result = response.text
        start = result.find(
"(") + 
1
        end = result.rfind(
")")
        user_info = json.loads(result[start:end])
        nickname = user_info.get(
"nickName")
        
print(
f"欢迎您,{nickname}")
    
else:
        
print(
"获取用户信息失败")
# 预约商品
def 
reserve():
    url = 
"https://yushou.jd.com/youshouinfo.action"
    params = {
        
"callback": 
f"fetchJSON{random.randint(1000000, 9999999)}",
        
"sku": sku_id,
        
"_": 
int(time.time() * 
1000),
    }
    response = session.get(url=url, params=params, headers=buy_headers)
    
if response.status_code == 
200:
        result = response.text
start = result.find(
"(") + 
1
        end = result.rfind(
")")
        reserve_info = json.loads(result[start:end])
        
if reserve_info.get(
"code") == 
"200":
            reserve_url = reserve_info.get(
"url")
            session.get(url=reserve_url, headers=buy_headers)
            
print(
"预约成功")
        
else:
            
print(
"预约失败")
    
else:
        
print(
"获取预约信息失败")
# 秒杀商品
def 
seckill():
    url = 
"https://marathon.jd.com/seckillnew/orderService/pc/submitOrder.action?skuId=" + sku_id
    data = {
        
"skuId": sku_id,
        
"num": 
1,
        
"password": 
"",
        
"eid": eid,
        
"fp": fp,
    }
    response = session.post(url=url, data=data, headers=buy_headers)
    
if response.status_code == 
200:
        result = response.json()
        
if result.get(
"success"):
            order_id = result.get(
"orderId")
            total_price = result.get(
"totalMoney")
            pay_url = 
f"https://marathon.jd.com/seckill/seckill.action?skuId={sku_id}&orderId={order_id}"
            
print(
f"抢购成功,订单号:{order_id},总价:{total_price},付款链接:{pay_url}")
            
return 
True
        
else:
            
print(
f"抢购失败,返回信息:{result}")
            
return 
False
    
else:
        
print(
"提交订单失败")
        
return 
False
# 检查订单
def 
check_order():
    url = 
"https://order.jd.com/center/list.action"
    params = {
        
"rid": 
int(time.time() * 
1000),
    }
    response = session.get(url=url, params=params, headers=buy_headers)
    
if response.status_code == 
200:
        orders = response.text
        
if sku_id 
in orders:
            
print(
"订单提交成功")
            
return 
True
        
else:
            
print(
"订单提交失败")
            
return 
False
    
else:
        
print(
"获取订单失败")
        
return 
False
# 支付订单
def 
pay_order():
    
pass 
# 此处省略支付逻辑,需要在手机上完成
# 主函数
def 
main():
    
# 获取登录二维码
    get_qrcode()
    
# 检查是否登录成功
    
while 
not check_login():
        time.sleep(
1)
    
# 获取用户信息
    get_user_info()
    
# 预约商品
    reserve()
    
# 等待抢购时间
    
while 
True:
        now = datetime.datetime.now()
        
if now.strftime(
"%Y-%m-%d %H:%M:%S") >= buy_time:
            
break
        time.sleep(
0.1)
    
# 秒杀商品
    
while 
not seckill():
        time.sleep(
0.1)
    
# 检查订单
    
while 
not check_order():
        time.sleep(
0.1)
    # 支付订单
pay_order()
    
print(
"抢购流程结束")
if __name__ == 
"__main__":
    main()


以上就是新必应写的完整的脚本代码。

相关推荐

电脑蓝屏重新启动(电脑蓝屏重新启动快捷键)
  • 电脑蓝屏重新启动(电脑蓝屏重新启动快捷键)
  • 电脑蓝屏重新启动(电脑蓝屏重新启动快捷键)
  • 电脑蓝屏重新启动(电脑蓝屏重新启动快捷键)
  • 电脑蓝屏重新启动(电脑蓝屏重新启动快捷键)
恢复大师app下载(恢复大师app下载软件)

是真的。开心手机恢复大师是一款苹果手机数据恢复软件,可以恢复删除的微信聊天记录、短信、通讯录、备忘录、qq聊天记录等17种数据。我测试了一下,确实是可以恢复的。而且开心手机恢复大师是可以免费试用的,是...

windowsxp下载网站(windows xp download)

目前无法下载因为红色警戒XP电脑版是一款已经停止开发的游戏,官方已经停止了对其的支持和更新。虽然网上有一些模拟器可以运行该游戏,但是安装和使用相对困难,而且可能存在版权问题。建议玩家选择其他同类型的游...

没人用过的激活码没过期(没人用过的激活码没过期可以用吗)

迷你世界并不存在什么激活码的。《迷你世界》是一款高度自由的休闲类3D沙盒游戏,有着非常方便快捷的多人联机模式,只要有网络就能和各个地方的小伙伴们一起玩。这里没有等级和规则限制,没有规定的玩法,只有随心...

2017年联想笔记本电脑有几款

17年的笔记本电脑可以勉强安装一下win10系统试试。关键看你的内存有多少,内存大于4个G的话可以安装win10速度不会太慢。最好是安装win7系统,这样能发挥你这台电脑的所有的性能,你用起来也会感觉...

当前显卡排名(当下显卡排行)

101、Irispro5802、Iris62002、Iris52004、UHD630/6205、HD6306、HD5307、HD46008、HD44009、HD420010、HD40...

win10专业版激活变成企业版(win10专业版激活变成企业版怎么办)

win10永久激活密钥很少,一旦网上有分享,等你拿到时就超过期限了,一般是要购买。激活win10系统可以使用激活工具:win10激活工具下载一、win10专业版产品密钥NXRQM-CXV6P-PBGV...

ghostwinxp下载纯净版(ghost win7纯净版下载)

可以下载的,现在官网和其他网站上都可以下载xp原版的。可以通过以下步骤下载我的世界游戏到xp系统中:1.首先打开你的浏览器软件,搜索关键字“我的世界xp版下载”,找到可靠下载地址;2.从下载页面下...

惠普完整版驱动(惠普最新驱动)

惠普官方的标准操作:HP1050安装驱动步骤:一:准备:拿出驱动光盘放入光驱或到HP官网下载完整版驱动。二:不要插USB数据线或插上线打印机电源不要开,安装完整版驱动,当程序提示插入USB数据线时,插...

浏览器最好用的(浏览器最好用的插件)

一、谷歌浏览器谷歌浏览器是公认最好用的,这个可以从市场占有率看出端倪,超过三分之二的用户使用谷歌浏览器。Chrome浏览器以简洁快速著称,不管是普通用户还是开发人员,chrome浏览器都是首选。Chr...

fast路由器6位初始密码(fast路由器的密码)

答:fast路由器初始密码是admin;新款的迅捷无线路由器,管理界面没有初始密码。查看迅捷无线路由器底部标签,标签上标注了admin,说明初始密码就是admin;如果没有,说明该路由器没有初始密码。...

硬盘恢复软件哪个好(硬盘 恢复软件)

迷你兔数据恢复工具:支持恢复硬盘丢失的数据Pc3000数据恢复软件是一款非常专业的硬盘修复工具,能够对电脑硬盘资料数据进行修复,通过使用这个软件可以解决硬盘数据丢失故障,是一个用户进行硬盘资料修复好帮...

十大品牌监控摄像头排名(十大品牌监控摄像头排名第一)

答:1、华为/HUAWEI9.92、小米/MI9.63、罗技/Logitech9.64、海康威视/HIKVISION9.25、乔安/Jooan9.26、普联/TP-LINK9.27、乐橙8.98、萤石...

360手机助手老旧版本大全(360手机助手 老版本)

在设置里面找到历史记录就可能查看360手机助手·换机神器是安卓系统的换机软件,因为苹果的换机软件是爱思。1、打开360手机卫士,登陆账号,点击账号。2、进入个人中心,点击账户安全,在密保工具中,点击解...

系统应用工程师(系统工程的应用)

信息软件系统工程师有前途,毕业以后可以从事软件开发,软件系统的维护,运营等等,和计算机有关的工作内容,因为计算机专业可以说是一个非常热门的专业,很多的大型企业公司基本上都是以计算机研发为主的,薪资福利...

取消回复欢迎 发表评论: