Python大麦网自动抢票脚本实战教程(Selenium完整可运行代码)
适用系统: Windows / Mac / Linux核心优势国内网络适配、无需境外驱动、防风控、精准卡点、零基础可用⚠️ 重要免责声明本文所有代码仅用于 Python 自动化、Selenium 网页自动化技术学习研究仅限个人测试学习。大麦网用户协议明确禁止脚本、爬虫等自动化工具操作平台批量抢票、囤票加价倒卖演出票涉嫌违反《治安管理处罚法》情节严重可追究刑事责任。违规使用脚本导致账号封禁、IP 限制、法律责任全部由使用者自行承担。请理性购票维护公平购票环境。一、前言为什么选择 Selenium 做抢票热门演唱会、音乐节开票瞬间秒空手动刷新、手动点击根本拼不过自动化程序。目前市面上仅有两种抢票方案优劣差距非常明显接口直刷不推荐新手直接请求后端库存接口速度最快但需要逆向加密签名、Cookie、订单参数技术门槛极高高频请求极易封号、触发风控。Selenium 浏览器自动化本文方案操控真实 Chrome 浏览器1:1 模拟真人点击、刷新、选座下单可视化操作、逻辑简单、风控概率极低是新手学习、个人捡漏首选方案。相比于复杂的接口逆向Selenium 可以让我们零逆向、零基础实现全自动抢票全程看得见操作报错可快速排查。二、环境搭建5分钟极速完成2.1 安装 Python 环境安装Python 3.8 及以上正式版本安装时务必勾选Add Python to PATH加入系统环境变量。安装完成后终端输入以下命令验证是否安装成功python--version2.2 安装核心依赖库本脚本无需手动配置 ChromeDriver依托webdriver-manager自动适配国内镜像驱动完美解决境外驱动网站无法访问的国内网络问题。一键安装依赖pipinstallselenium webdriver-manager依赖说明selenium浏览器自动化核心库负责操控页面所有操作webdriver-manager自动匹配、下载、适配 Chrome 驱动彻底告别版本报错2.3 浏览器要求电脑需安装最新版谷歌 Chrome 浏览器其他浏览器不兼容本脚本。三、抢票核心流程拆解脚本完整复刻人工购票全流程全自动执行仅扫码登录需要手动参与加载页面 自动登录检测打开目标演出页面未登录自动弹出扫码窗口限时等待登录精准定时卡点倒计时等待开票开票前1分钟高频刷新页面自动选场次/日期/票档自动匹配可购场次、目标票价档位自动设置购票数量、勾选观演人无需手动操作订单信息循环重试提交订单毫秒级监控下单按钮抢到立即提交核心优化全程使用WebDriverWait显式等待摒弃死板的固定延时页面加载完成立即执行操作兼顾速度与稳定性。四、完整可运行抢票代码国内适配版代码内置防风控参数、随机真人延时、超时保护、异常捕获无需修改底层代码仅修改顶部配置即可直接运行。 大麦网自动抢票脚本 PythonSelenium 完整版 适配国内网络、无需访问境外ChromeDriver下载站 内置防风控、定时卡点、显式等待、自动驱动适配 仅供Python自动化技术学习禁止囤票倒卖、商用 importtimeimportrandomfromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromwebdriver_manager.chromeimportChromeDriverManagerfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_conditionsasECfromselenium.common.exceptionsimportTimeoutException,NoSuchElementException# 【用户自定义配置区 - 务必修改】 # 大麦移动端演出链接APP分享链接获取替换对应项目IDTARGET_URLhttps://m.damai.cn/damai/perform/item.html?projectId替换为你的演出ID# 目标开票时间 24小时制TARGET_HOUR10TARGET_MINUTE0# 目标票档文字必须和网页完全一致例看台380元、内场680元TARGET_PRICE看台380元# 购买票数1张成功率最高多张需提前添加对应实名观演人BUY_COUNT1# 无头模式False显示浏览器(调试) True隐藏浏览器(后台挂机)HEADLESSFalse# 登录最大等待时间秒LOGIN_WAIT_TIME120# 订单最大重试提交次数MAX_SUBMIT_TRY50# classDamaiTicketBot:def__init__(self):# Chrome防风控核心配置规避自动化检测chrome_optionswebdriver.ChromeOptions()# 关闭浏览器自动化标识chrome_options.add_experimental_option(excludeSwitches,[enable-automation])chrome_options.add_experimental_option(useAutomationExtension,False)chrome_options.add_argument(--disable-blink-featuresAutomationControlled)# 模拟真实浏览器运行环境chrome_options.add_argument(--no-sandbox)chrome_options.add_argument(--disable-dev-shm-usage)# 随机UA进一步防风控chrome_options.add_argument(user-agentMozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36)# 无头模式配置ifHEADLESS:chrome_options.add_argument(--headlessnew)chrome_options.add_argument(--disable-gpu)# 关闭冗余日志输出chrome_options.add_argument(--log-level3)# 自动适配驱动解决国内无法访问境外驱动网站问题# webdriver-manager 国内镜像自动下载驱动无需手动安装serviceService(ChromeDriverManager().install())self.driverwebdriver.Chrome(serviceservice,optionschrome_options)self.driver.maximize_window()# 全局显式等待精准加载元素self.waitWebDriverWait(self.driver,10)# 隐式等待兜底self.driver.implicitly_wait(3)defwait_for_element(self,by,value,timeout10):通用工具等待元素可点击超时不报错、不中断程序try:elemWebDriverWait(self.driver,timeout).until(EC.element_to_be_clickable((by,value)))returnelemexceptTimeoutException:returnNonedeflogin_handle(self):加载页面 扫码登录逻辑限时保护print([INFO] 正在加载大麦演出页面...)self.driver.get(TARGET_URL)time.sleep(random.uniform(1,1.5))# 检测登录状态login_btnself.wait_for_element(By.XPATH,//*[contains(text(), 登录) or contains(text(), 登陆)])iflogin_btn:print([INFO] 检测到未登录请打开大麦APP扫码登录2分钟内完成)login_btn.click()# 限时等待登录完成try:WebDriverWait(self.driver,LOGIN_WAIT_TIME).until(lambdad:loginnotind.current_url.lower())print([SUCCESS] 账号登录成功等待开票)exceptTimeoutException:print([ERROR] 登录超时脚本自动退出请重新运行)self.driver.quit()exit()else:print([INFO] 账号已登录就绪等待开票)defwait_target_open_time(self):精准定时卡点开票前高频刷新无需手动值守print(f[INFO] 定时等待开票{TARGET_HOUR:02d}:{TARGET_MINUTE:02d})whileTrue:nowtime.localtime()h,m,snow.tm_hour,now.tm_min,now.tm_sec# 临近开票进入秒杀状态ifhTARGET_HOURandmTARGET_MINUTEands55:print([INFO] 即将开票启动秒杀模式)break# 开票前1分钟高频刷新页面确保第一时间加载库存ifhTARGET_HOURandmTARGET_MINUTE-1ands55:self.driver.refresh()time.sleep(random.uniform(0.4,0.6))time.sleep(0.1)defselect_date_session(self):自动选择可点击日期、演出场次print([INFO] 自动匹配演出日期、场次)# 选择可用日期date_btnself.wait_for_element(By.XPATH,//div[contains(class, date-item) and not(contains(class, disabled))])ifdate_btn:date_btn.click()print([INFO] 已选中演出日期)time.sleep(random.uniform(0.2,0.4))# 选择可用场次session_btnself.wait_for_element(By.XPATH,//div[contains(class, session-item) and not(contains(class, disabled))])ifsession_btn:session_btn.click()print([INFO] 已选中演出场次)defselect_price_tier(self):精准匹配目标票档双模式兜底精确模糊print(f[INFO] 匹配目标票档{TARGET_PRICE})# 精确匹配票档price_btnself.wait_for_element(By.XPATH,f//span[contains(text(), {TARGET_PRICE})]/..)ifprice_btn:price_btn.click()print(f[SUCCESS] 成功选中票档{TARGET_PRICE})else:# 模糊匹配兜底price_btnself.wait_for_element(By.XPATH,f//*[contains(text(), {TARGET_PRICE})])ifprice_btn:price_btn.click()print(f[SUCCESS] 模糊匹配选中票档{TARGET_PRICE})else:print(f[ERROR] 未找到对应票档请检查配置文字是否一致)time.sleep(random.uniform(0.2,0.3))defset_ticket_count(self):自动设置购票数量ifBUY_COUNT1:returnprint(f[INFO] 调整购票数量至{BUY_COUNT}张)add_btnself.wait_for_element(By.XPATH,//div[contains(class, number)]//span[contains(class, plus) or contains(text(), )])ifadd_btn:for_inrange(BUY_COUNT-1):add_btn.click()time.sleep(random.uniform(0.08,0.15))print([INFO] 购票数量设置完成)defselect_viewer(self):自动勾选实名观演人print([INFO] 勾选实名观演人)viewer_checkself.wait_for_element(By.XPATH,//div[contains(class, audience)]//input[typecheckbox and not(disabled)])ifviewer_checkandnotviewer_check.is_selected():viewer_check.click()print([INFO] 观演人勾选完成)defsubmit_order_loop(self):核心下单逻辑循环重试提交订单极限抢票print([INFO] 持续监控下单按钮全力抢票中...)foridxinrange(MAX_SUBMIT_TRY):submit_btnself.wait_for_element(By.XPATH,//*[contains(text(), 立即购买) or contains(text(), 提交订单)],timeout1)ifsubmit_btn:try:submit_btn.click()print(\n【抢票成功】请15分钟内打开大麦APP完成支付)returnTrueexceptException:continue# 定时刷新防缓存ifidx%50:self.driver.refresh()time.sleep(random.uniform(0.4,0.6))time.sleep(random.uniform(0.15,0.25))print([ERROR] 抢票失败已达最大重试次数)returnFalsedefrun(self):脚本主运行入口print(*60)print( 大麦网自动抢票脚本国内适配版)print(*60)try:# 1. 登录流程self.login_handle()# 2. 等待开票时间self.wait_target_open_time()# 3. 开票刷新进入抢票流程self.driver.refresh()time.sleep(random.uniform(0.3,0.5))# 4. 自动选场次、选票、设数量self.select_date_session()self.select_price_tier()self.set_ticket_count()# 5. 点击立即购买buy_btnself.wait_for_element(By.XPATH,//*[contains(text(), 立即购买) or contains(text(), 选座购买)])ifbuy_btn:buy_btn.click()# 6. 勾选观演人 提交订单self.select_viewer()self.submit_order_loop()else:print([ERROR] 无购买按钮门票已售罄或页面更新)exceptExceptionase:print(f[FATAL] 脚本异常{str(e)})finally:print(\n[INFO] 脚本运行结束浏览器保持打开可手动操作)input(回车关闭浏览器...)self.driver.quit()if__name____main__:botDamaiTicketBot()bot.run()五、参数配置教程仅改4项无需读懂代码仅修改顶部自定义配置区4个核心参数即可使用TARGET_URL大麦APP分享的移动端演出链接替换链接内的projectIdTARGET_HOUR / TARGET_MINUTE官方开票时间24小时制如10点开票填 10、0TARGET_PRICE目标票档文字必须和网页一字不差匹配失败是新手最大问题BUY_COUNT购票数量默认1张成功率最高多张需提前添加对应观演人六、零基础极速上手步骤6.1 账号提前准备必做大麦账号完成实名认证未实名无法下单个人中心提前添加实名观演人信息实体票演出提前填写收货地址6.2 脚本运行步骤将修改好的代码保存为damai_bot.py终端进入文件所在文件夹执行运行命令python damai_bot.py弹出浏览器后大麦APP扫码登录登录成功后脚本自动卡点等待开票全程无需手动操作抢票成功后15分钟内APP手动支付超时订单失效七、常见问题排查表故障现象问题原因解决方案匹配不到票档票档文字和页面不一致直接复制网页完整票档文字粘贴配置驱动版本报错Chrome自动更新脚本自动适配驱动直接重启即可无法勾选观演人未实名/未添加观演人提前在网页端完善实名与观演人信息浏览器闪退、风控操作频率过高关闭无头模式不要长时间挂机八、风控与合规提醒风控说明脚本内置防风控参数但平台存在行为检测请勿24小时挂机、高频频繁运行成功率说明无100%抢票脚本脚本仅替代人工重复操作最终成功率取决于网络、服务器并发、运气合规红线代码仅限个人Python技术学习禁止商用代抢、囤票倒卖违规后果自负九、拓展优化方向可自行二次开发升级脚本多票档优先级切换、微信抢票通知、Cookie免登录、多演出轮询监控、语音播报成功提醒等功能。十、总结本脚本适配国内网络环境彻底解决境外驱动无法访问的问题零基础用户修改少量配置即可全自动抢票。同时通过学习本脚本可快速掌握 Selenium 网页自动化、元素等待、防风控优化、面向对象编程等实用技术兼顾实战与学习价值。请理性使用技术维护公平购票环境。

相关新闻

三维空间计算框架在智能仓储中的动态建模应用

三维空间计算框架在智能仓储中的动态建模应用

1. 项目背景与核心价值仓储空间认知能力的升级是物流行业数字化转型的关键瓶颈。传统静态建模方法依赖固定传感器和预设规则,难以应对复杂多变的实际仓储场景。我们团队开发的这套三维空间计算框架,首次实现了从静态建模到动态建模的认知跃迁。这个框架的…

2026/10/11 10:28:20 阅读更多 →
YOLOv8在无人机航拍目标检测中的优化实践

YOLOv8在无人机航拍目标检测中的优化实践

1. 项目背景与核心价值无人机航拍视角下的目标检测是当前计算机视觉领域的热点应用方向。相比传统地面摄像头,无人机拍摄的俯视角度带来了更广阔的视野覆盖,但也面临目标尺寸小、遮挡严重、光照变化大等独特挑战。去年参与某城市智慧交通项目时&#xff…

2026/10/11 8:48:20 阅读更多 →
RAG还没死,SmartRAG更聪明了

RAG还没死,SmartRAG更聪明了

今天分享的是SmartRAG–把云端GraphRAG那套"百亿大模型现场建图"的范式拆掉,改成四个轻量模块分工,让1.7B量化模型在一加手机上跑多跳QA,追平18倍大模型。 手机端跑GraphRAG的痛点不在模型小,是云端"让大模型建图…

2026/10/2 2:31:58 阅读更多 →

最新新闻

如何看懂 Portabase 安全机制:AES-256-GCM凭据加密、RBAC与Passkey登录完整指南

如何看懂 Portabase 安全机制:AES-256-GCM凭据加密、RBAC与Passkey登录完整指南

【免费下载链接】portabase Portabase - Database backup & restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume 项目地址: https://gitcode.com/gh_mirrors/por/portabase 点击查看 免费下载 Por…

2026/10/11 13:09:49 阅读更多 →
Trace Labs OSINT VM 与 CTF:动手练习平台指南

Trace Labs OSINT VM 与 CTF:动手练习平台指南

Trace Labs OSINT VM 与 CTF:动手练习平台指南 【免费下载链接】Legendary_OSINT A list of OSINT tools & resources for (fraud-)investigators, CTI-analysts, KYC, AML and more. 项目地址: https://gitcode.com/GitHub_Trending/le/Legendary_OSINT …

2026/10/11 13:09:49 阅读更多 →
SSM+Layui图书管理系统实战:从架构选型到整合避坑

SSM+Layui图书管理系统实战:从架构选型到整合避坑

简介:基于SSMLayui的图书管理系统完整项目资源,面向Java Web初学者、毕业设计及课程设计人群,可解决图书增删改查、借阅归还、用户与权限管理等常见业务模块的开发难题。压缩包内含8个文件,共61.06MB,主要由Java源码压…

2026/10/11 13:09:49 阅读更多 →
SpringBoot校园综合服务系统:从数据库设计到部署排错全流程指南

SpringBoot校园综合服务系统:从数据库设计到部署排错全流程指南

最近帮人验收一套基于SpringBoot的校园平台综合服务系统,源码、部署文档、代码讲解三件套都说有,但真正拉起来跑的时候发现问题不少。这让我想好好聊聊这类项目该怎么做,以及源码、文档、部署这些“表面功夫”背后到底是什么。 所谓校园平台…

2026/10/11 13:09:49 阅读更多 →
双向LSTM与GRU实战:飞行轨迹预测选型与避坑指南

双向LSTM与GRU实战:飞行轨迹预测选型与避坑指南

简介:基于MATLAB开发的双向长短期记忆网络(LSTM)与门控循环单元(GRU)飞行轨迹预测代码包,主要面向具备本科及以上学历的科研人员、工程师和深度学习爱好者,可用于无人机、飞行器航迹预测、目标轨…

2026/10/11 13:09:49 阅读更多 →
Linux C++符号混淆实战:从符号泄露到崩溃还原

Linux C++符号混淆实战:从符号泄露到崩溃还原

上个月处理一个发布版Linux软件被逆向的排查,第一次动手就发现一个很扎心的现象:那个C项目没做任何符号层面的处理,对手一条nm命令下来,整个项目的内部函数名、类名、全局变量全部原样躺在那里。软件里有一块自研的核心算法&#…

2026/10/11 13:08:48 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →