GitHub_Trending/ti/ticket-purchase:革命性大麦抢票工具,支持多用户多场次智能选择...

GitHub_Trending/ti/ticket-purchase:革命性大麦抢票工具,支持多用户多场次智能选择

【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 【免费下载链接】ticket-purchase 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase

你还在为演唱会门票秒空而抓狂?还在手动切换多个场次和票价选项而错失良机?本文将为你介绍一款革命性的大麦自动抢票工具,它能支持多用户、多城市、多日期场次及价格选择,让你轻松搞定热门演出门票。读完本文,你将了解该工具的核心功能、两种抢票方案的实现原理、详细的配置步骤以及实际操作流程,助你高效抢票。

核心功能解析

该抢票工具的核心在于其强大的自动化能力和灵活的配置选项,主要体现在以下几个方面:

  • 自动无延时抢票:借助Selenium或Appium等自动化工具,模拟用户的购票流程,实现接近实时的抢票操作,大大提高抢票成功率。
  • 多维度选择支持:可根据用户需求,灵活选择观演人员、城市、日期场次以及价格等关键信息,满足不同场景下的抢票需求。

工具架构概览

工具主要包含网页端和安卓端两个版本,分别通过不同的技术栈实现抢票功能。网页端基于Selenium,安卓端则依赖Appium。项目结构清晰,主要分为damai(网页端相关代码)和damai_appium(安卓端相关代码)两个目录,便于维护和扩展。

两种抢票方案实现

网页端抢票方案

网页端抢票方案主要通过Selenium模拟浏览器操作来完成,其核心代码位于damai/concert.py文件中。该方案的实现流程如下:

  1. 登录验证:支持Cookie登录方式,用户只需扫码一次,后续可通过保存的Cookie自动登录,避免重复验证。
  2. 目标页面访问:登录成功后,自动跳转到用户指定的演唱会门票页面。
  3. 场次与票价选择:根据用户在配置文件中设定的城市、日期场次和价格等信息,自动筛选并点击符合条件的选项。
  4. 订单提交:选定合适的门票后,自动勾选观演人员信息,并提交订单。

安卓端抢票方案

安卓端抢票方案则利用Appium实现对大麦APP的自动化控制,其V2版本的介绍可参考damai_appium/app.md。该方案具有以下特点:

  • APP端优势:由于大麦的大部分票只能在APP端购买,安卓端方案弥补了网页端的不足。
  • 优化与改进:V2版本针对APP界面更新导致的票价信息获取问题,采用索引方式获取按钮;增加了重试机制,优化了多人勾选逻辑,使用WebDriverWait替代隐式等待,提升了抢票效率。

详细配置步骤

环境准备

网页端环境配置
  1. 安装Python3环境
    • Windows用户可访问Python官方网站下载安装程序,并勾选"Add Python X.X to PATH"选项。
    • macOS用户可通过Homebrew安装Python3,命令为brew install python@3
  2. 安装依赖库:在命令窗口输入pip3 install selenium安装Selenium。
  3. 下载Google Chrome浏览器:确保浏览器版本与Selenium驱动兼容。
安卓端环境配置
  1. 安装Node环境:需安装node版本号18.0.0及以上,以具备npm功能。
  2. 配置Android SDK:下载并安装Android SDK,并配置相应的环境变量。
  3. 安装Appium:通过npm安装Appium,命令为npm install -g appium,同时还需下载UiAutomator2驱动,命令为npm install appium-uiautomator2-driver。若遇到Chromedriver安装错误,可设置环境变量export APPIUM_SKIP_CHROMEDRIVER_INSTALL=true解决。
  4. 安装Appium Python客户端:命令为pip3 install appium-python-client

配置文件修改

网页端配置文件

在运行网页端抢票程序之前,需要修改配置文件。该文件用于指定用户需要抢票的相关信息,包括演唱会的场次、观演的人员、城市、日期、价格等。文件结构如下图所示:

配置文件结构

文件内容说明:

  • index_url为大麦网的地址,无需修改。
  • login_url为大麦网的登录地址,无需修改。
  • target_url为用户需要抢的演唱会票的目标地址,需要用户自行修改。
  • users为观演人的姓名,观演人需要用户在手机大麦APP中先填写好,然后再填入该配置文件中。
  • city为城市,如果用户需要抢的演唱会票需要选择城市,请把城市填入此处,如无需选择,则不填。
  • date为场次日期,可多选。
  • price为票档的价格,可多选。
  • if_commit_order为是否要自动提交订单,设置为true
  • if_listen为是否回流监听,设置为true
安卓端配置文件

安卓端配置文件为config.jsonc,可通过Config.load_config()方法加载。配置项包括服务器地址、关键词、用户信息、城市、日期、价格等,用户需根据实际需求进行修改。

配置示例说明

进入大麦网选择需要抢票的演唱会,假设目标演唱会页面如下图所示:

演唱会示例页面

按照下图的标注对配置文件进行修改,将target_url设置为该演唱会的地址,users填入观演人姓名,citydateprice分别选择对应的城市、日期场次和票价。

配置文件修改示例

最终config.json的文件内容如下:

{
  "index_url": "https://www.damai.cn/",
  "login_url": "https://passport.damai.cn/login?ru=https%3A%2F%2Fwww.damai.cn%2F",
  "target_url": "https://detail.damai.cn/item.htm?spm=a2oeg.home.card_0.ditem_1.591b23e1JQGWHg&id=740680932762",
  "users": [
    "名字1",
    "名字2"
  ],
  "city": "广州",
  "date": "2023-10-28",
  "price": "1039",
  "if_listen":true,
  "if_commit_order": true
}

实际操作流程

网页端抢票流程

网页端抢票的流程图如下:

网页端抢票流程图

具体操作步骤:

  1. 运行程序:进入命令窗口,执行cd damai进入网页端代码目录,然后执行python3 damai.py运行抢票程序。
  2. 登录操作:程序会自动打开浏览器并跳转到大麦网登录页面,用户需扫码登录,登录成功后Cookie会被保存,以便后续自动登录。
  3. 抢票过程:程序会根据配置文件中的信息,自动选择城市、场次、票价和观演人,并提交订单。

安卓端抢票流程

  1. 开启Appium服务端:执行命令appium --address 0.0.0.0 --port 4723 --relaxed-security启动Appium服务。
  2. 执行抢票任务:进入damai_appium目录,执行python damai_app_v2.py运行抢票脚本。

安卓端抢票脚本通过Appium连接到大麦APP,模拟用户在APP上的操作,实现自动抢票功能。其核心代码片段如下,用于配置设备信息并连接Appium server:

from appium import webdriver
from appium.options.common.base import AppiumOptions

device_app_info = AppiumOptions()
device_app_info.set_capability('platformName', 'Android')
device_app_info.set_capability('platformVersion', '10')
device_app_info.set_capability('deviceName', 'YourDeviceName')
device_app_info.set_capability('appPackage', 'cn.damai')
device_app_info.set_capability('appActivity', '.launcher.splash.SplashMainActivity')
device_app_info.set_capability('unicodeKeyboard', True)
device_app_info.set_capability('resetKeyboard', True)
device_app_info.set_capability('noReset', True)
device_app_info.set_capability('newCommandTimeout', 6000)
device_app_info.set_capability('automationName', 'UiAutomator2')

# 连接appium server,server地址查看appium启动信息
driver = webdriver.Remote('http://127.0.0.1:4723', options=device_app_info)

总结与展望

工具优势总结

GitHub_Trending/ti/ticket-purchase抢票工具凭借其自动化抢票能力、多维度选择支持以及两种抢票方案(网页端和安卓端),为用户提供了高效、便捷的抢票体验。网页端方案操作简单,适合普通用户;安卓端方案则针对APP端购票限制,拓展了抢票渠道。

未来功能展望

目前该工具已实现了抢票的核心功能,但仍有进一步优化和拓展的空间。未来可以考虑增加预约功能,实现对预约类门票的自动化抢购;进一步优化界面元素定位算法,提高对APP界面更新的适应性;增加更多的错误处理和异常恢复机制,提升抢票的稳定性和可靠性。

希望本文介绍的抢票工具能帮助你顺利抢到心仪的演唱会门票。如果你觉得本文对你有帮助,欢迎点赞、收藏、关注,以便获取更多相关工具和技术的介绍。下期我们将带来该工具的高级配置技巧,敬请期待!

【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 【免费下载链接】ticket-purchase 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值