ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

大麦抢票脚本实战指南:三步跑通 Python 自动下单全流程

大麦抢票脚本实战指南:三步跑通 Python 自动下单全流程 大麦抢票脚本实战指南三步跑通 Python 自动下单全流程【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase手动抢票要刷页面、找按钮、填观演人慢一步就没了。大麦抢票脚本Automatic_ticket_purchase只在登录环节开浏览器其余取 SKU、建订单、提交订单全部走 HTTP 请求把整条下单链路自动化。抢票链路的定位为什么只有登录需要真浏览器这个仓库的 V1 版本靠 Selenium 点点点买票要等页面元素加载完才能走下一步效率很低。V2 版本把思路换了Selenium 只负责登录拿 Cookie之后所有请求换成requests直发接口——浏览器只是登录的入口关卡进门之后方向盘就交给接口了。它做的事与不做的事先对齐预期能买立即购买型普通场次能买选座场次指定价位、暂不支持连坐登录后 Cookie 落盘复用下次运行免登录不覆盖移动端流程README 顶部已注明项目停止维护大部分购买方式已迁移至手机端PC 端接口后续需自行抓包跟进一句话它是一份接口式下单的完整样板学习价值大于生产价值。环境准备三步让脚本第一次跑起来环境要求很轻Python 4 个依赖外加两样系统级组件克隆仓库git clone https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase安装依赖requirements.txt 里就 4 行pip install -r requirements.txt依赖是requests、selenium、beautifulsoup4、pyexecjs。注意pyexecjs需要本机装好Node.js 运行时选座流程要靠它执行 signcode.js 计算 mtop 接口的 sign 签名。下载与本地 Chrome 版本匹配的 ChromeDriver放到项目根目录并按平台重命名chromedriver_windows/chromedriver_linux/chromedriver_mac。tools.py 里的account_login()就是按这三个文件名找驱动的命名错一个字母都会启动失败。DaMaiTicket 的 6 个参数与下单三步曲所有抢票参数集中在 Automatic_ticket_purchase.py 的DaMaiTicket.__init__里改完这 6 行就可以跑参数含义取值方式与注意login_id / login_password账号密码登录凭据仅首次登录用也可改扫码登录item_id商品 ID取商品页 URL 里的id参数viewer观演人姓名列表必须与我的大麦里已填的购票人完全一致buy_nums购票数量必须等于len(viewer)run()会先校验ticket_price指定票价脚本按它匹配skuList里的档位item_id 的位置——商品页地址栏id后面那串数字不同城市场次各不相同viewer 则填我的大麦 → 常用购票人管理里已经登记好的姓名一字不差登录和配置完成后执行入口是python Automatic_ticket_purchase.py # 默认账号密码登录 python Automatic_ticket_purchase.py --mode qr # 改为扫码登录主流程run()分三步step1_get_order_info拉取 SKU 信息响应是null(...)包裹的 JSONP 文本脚本里做了剥离step2_click_buy_now请求 orderConfirm 拿到window.__INIT_DATA__订单数据step3_submit_order在观演人列表里按viewer标记isUsed并 POST 到createOrder提交。成功后打印支付宝支付链接。三个真实用法抢票前夜你会怎么写代码卡开抢瞬间常驻轮询模式普通场次的按钮在开抢前是即将开抢。run()里是个while True循环不断调 step1 轮询按钮状态即将开抢就continue缺货登记直接退出立即购买立刻进入 step2。所以正确姿势是开抢前几分钟把脚本挂着让它替你盯着状态翻转而不是开抢时手动执行。指定价位买座选座购买V2.1 新增选座场次走另一条支路链路上多四个 mtop 接口get_select_seat_params取场次 ID →get_seat_dynamic_info取看台 ID →get_select_seat_api拿座位 JSON 地址 →get_valuable_seat_id过滤不可售座位。每一步的sign参数都由 Node.js 执行 signcode.js 的calcaulate函数算出h5token取自登录 Cookie 里的_m_h5_tk。拿到全部座位后format_valuable_seatid按ticket_price对应的 priceId 过滤、剔除非售座位pick_seat按遍历顺序取前buy_nums个座位提交。注意这是顺序取第一个的朴素策略不保证连坐README 已明确此限制。免二次登录cookies.pkl 复用第一次登录成功后tools.save_cookies()会把 Cookie 以 pickle 存成cookies.pkl之后每次run()先尝试load_cookies()命中就跳过整个浏览器登录环节省掉最慢的一步。登录态失效页面弹回登录页时删掉cookies.pkl重新登录即可恢复。排障清单没抢到票时按图索骥打印登录失败, 请检查登录账号信息check_login_status是靠我的大麦-个人信息页面标题判定登录态的。若你用的是旧cookies.pkl删文件重新登录若是账号密码核对登录框是否真的进了alibaba-login-box这个 iframe。登录页弹滑块、登录异常请检查页面登录提示信息风控识别出了 Selenium。代码里已用excludeSwitches: [enable-automation]和--disable-blink-featuresAutomationControlled做伪装但若 Chrome 版本过新或风控升级仍可能触发换一版匹配的 Chrome ChromeDriver 再试。购买数量与实际观演人数量不符buy_nums与len(viewer)不一致改参数即可这是run()的第一道校验。请检查输入的观演人信息与大麦网观演人信息是否一致step3_submit_order会做set(viewer) set(页面观演人)的交集比对全等才放行。姓名里多了空格、繁简体不一致都会挂直接复制页面上的原文。get_api_param()正则匹配不到、接口返回解析异常这组正则依赖 g.alicdn.com 上vendor.js/perform.js的既有结构站点一改版就会失配需要自己重新抓包对照修改。README 已声明停止维护且 PC 端流程多迁至手机端接口层面的问题目前只能自己动手。该用它还是该弃用它判断标准一条你的目标商品还走 PC 端立即购买/选座购买流程且你的目的是学习登录拿 Cookie → 接口串流程 → 轮询下单这套自动化下单写法用它代码短、链路完整、tools.py 每一步都有注释目标商品只有 App 流程、或 PC 端接口已改版就别耗在打补丁上——官方 App 抓包重写才是正路。最后照 README 的免责声明说一句本仓库 MIT 协议、仅供个人学习参考勿用于商业倒卖。延伸阅读建议从 README.md 的流程图看起再对照 signcode.js 理解 mtop 签名怎么算。【免费下载链接】Automatic_ticket_purchase大麦网抢票脚本项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表