Automatic_ticket_purchase:20 分钟跑通的大麦抢票工具指南
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
这篇指南写给第一次写抢票脚本的你:Automatic_ticket_purchase 是一个大麦网抢票工具,登录之后不走页面、直接调用下单接口,把开售到下单的等待压到最短。跟着装好环境、改对参数,就能在自己的电脑上跑起来。
为什么你的手总是慢一拍?
开售那几秒钟里发生了什么?先说人。你的大脑从"看见按钮变亮"到"手指真的点下去",平均要 2.3 秒;而热门场次的票,往往 0.5 秒左右就被抢空。这不是手速问题,是生理极限摆在那——人肉操作对上机器,本来就不是一个量级。
再说网络。从家里的宽带到票务服务器,请求要一路挤过去,页面本身还要渲染、加载、等元素出现。你每次点按钮,前头都压着一长串你看不见又省不掉的等待。
最后是平台风控。行为特征、请求频率、设备指纹、验证码,一层一层地筛。脚本写得再快,动作太规整也会被当成机器人拦下来。所以真正的难点从来不是"快",而是"又快,又不像个机器人"。Automatic_ticket_purchase 想解决的正是这件事。
它凭什么快到毫秒级?
打个比方:普通脚本像在大厅排队点餐,等服务员、等出餐口;Automatic_ticket_purchase 是直接走后厨。登录这一步还走页面,之后的查库存、进下单页、提交订单,全部直接跟接口说话。
先看懂它是怎么分层的
项目很薄,翻 Automatic_ticket_purchase.py 就够:DaMaiTicket 类里的 step1、step2、step3 分别对应"拉取票档信息""进入下单确认页""提交订单",是整条链路的主干;tools.py 管登录和 cookies 的存取;signcode.js 负责请求签名,Python 侧通过 pyexecjs 调它执行。登录认证、抢票业务、命令行入口(--mode 参数)各占一层,分工很清爽。仓库里还配了一张完整流程图 images/flow_chart.jpeg,是竖版长图,建议直接在仓库里打开对照着看。
不点按钮,直接发请求
老版本也得等页面加载、等按钮出现,效率低;作者后来把思路整个换了:只在登录时用 selenium 开一次浏览器,拿到登录态存成 cookies.pkl,其余操作全交给 requests 直接打 detail.damai.cn 和 buy.damai.cn 的接口。页面加载、渲染、等待这些开销全省了,单次下单的耗时从 1.2 秒压到 0.15 秒左右。这就是毫秒级抢票的原理——不是你的网突然变快了,而是路上少跑了一大截冤枉路。
开售前磨刀,开售时出手
看 run() 方法里那个 while True 循环最直观:脚本反复查票,票档状态还是"即将开抢"就继续轮询,动作幅度压到最小;状态一旦翻成"立即购买",立刻走 step2 取订单参数、step3 提交订单,一气呵成;要是已经"缺货登记",干脆认输出局。它不做任何多余请求,把所有动作都压在开售那一下。新版还支持选座购买,脚本会自动拉座位图,按你指定的价位挑出可用座位再下单。
抢票脚本怎么部署?照着做,20 分钟跑起来
先把环境备好
三步:克隆仓库、装依赖、配驱动。
git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase cd Automatic_ticket_purchase pip install -r requirements.txt另外,登录环节要靠 selenium 开浏览器,所以还要准备一个和你系统匹配的 ChromeDriver,放到项目根目录,并按脚本约定重命名:Windows 下叫 chromedriver_windows,mac 叫 chromedriver_mac,Linux 叫 chromedriver_linux。这一步不做,登录会直接卡住。
把抢票参数配置改对
打开 Automatic_ticket_purchase.py,DaMaiTicket 的init里就是这几个必须改的地方:
def __init__(self): self.login_id: str = 'account' # 大麦网登录账户名 self.login_password: str = 'password' # 大麦网登录密码 self.item_id: int = 610820299671 # 商品id self.viewer: list = ['viewer1'] # 大麦网已添加的观演人 self.buy_nums: int = 1 # 购买数量,需与观演人数量一致 self.ticket_price: int = 180 # 购买指定票价最容易填错的是 item_id:它跟着城市走,同一个演出在不同场次是不同值。打开对应场次的商品页,从 URL 里把箭头指向的这段抠下来填进去就行:
viewer 填的是大麦账号里"常用观演人"的姓名,必须一字不差地对上,可以在账号里核对:
还有两个小约束别忘了:buy_nums 必须等于观演人数量;ticket_price 写清楚你想抢哪个价位,脚本就按这个价去匹配对应的票档。
第一次怎么跑
默认是账号密码登录,直接运行python Automatic_ticket_purchase.py即可;不想把密码写进代码就加--mode qr,它会弹出浏览器让你扫码。首次登录成功后,cookies 会存成 cookies.pkl,之后每次运行都直接复用,不用再登一遍。真抢到的话,终端会打印支付宝订单号,记得去"我的大麦—交易中心"里确认订单并完成支付。
爱折腾的人看这里 🔧
想换平台?照着 DaMaiTicket 抄一份
抢别的平台不是重写,是继承。DaMaiTicket 把整条链路拆成了独立方法,签名逻辑单独放在 signcode.js 里,换平台无非是把查票、下单、提交这三处的接口地址、请求头和签名算法换成目标平台的那一套,其他代码原样保留。
验证码拦住了怎么办
思路是自动识别加手动兜底:先把验证码图片存下来,丢给打码服务自动识别;识别不了就退一步,把图片弹出来让你手动处理。自动识别负责大多数情况,手动兜底负责剩下的部分,两条路都留着才稳。
一台机器不够?多节点协作
有人把脚本改成分布式玩法:一台机器当 master 发任务、维持心跳,其余节点领任务、各自下单,用数量换成功率。不过先泼盆冷水:README 里写明项目已停止维护,大部分购买方式已迁移到手机端,新场次往往要重新抓包再谈部署。折腾之前,先确认目标场次还有 PC 端流程可走,别白忙一场。
往后看,这类工具的路大概是两条:一是学会从历史放票数据里预测开售节点,把守株待兔变成掐点出手;二是把各平台接口收敛成一个配置层,改个文件就能换平台。但对大多数人,更该想清楚的是合规——仓库的免责声明写得很明白:代码仅供个人参考学习,商用、代抢一概免责。用它给自己提效率没问题,拿它去跟真实的购票者抢票,风控的名单上迟早有你。
说到底,Automatic_ticket_purchase 的价值不在"帮你抢到票",而在它把登录、轮询、下单这条链路的每一步都摊开给你看:接口长什么样、参数怎么签、状态怎么判。把这一套看懂,你面对的是任何网页下单流程,而不只是一个票务站。想自己动手的话,仓库地址是 https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase ,git clone 下来按前文步骤走一遍就行。
【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考