当前位置: 首页 > news >正文

某麦网自动刷新抢票脚本——手机端(高级版)

某麦网自动刷新抢票脚本——电脑端

小白操作-抵制黄牛–需要更好用更高级关注获取

如何用Python自动抢大麦网演出票?
在数字化时代,购票已经成为我们生活的一部分,无论是音乐会、话剧、体育赛事还是各种展览,抢票几乎成了一项“必备技能”。但面对热门事件的有限票源,如何在第一时间内抢到心仪的票呢?今天,我们将探索如何使用Python脚本和Selenium自动化工具来增加抢票的成功率。
在这里插入图片描述

Selenium简介

Selenium是一个用于Web应用程序测试的工具,但它同样可以用于自动化任何web浏览器操作。通过模拟真实用户的行为,Selenium可以登录网站、搜索信息、填写表单等。

抢票脚本的原理

本文的脚本主要通过Python的Selenium库来实现自动抢票。它首先登录大麦网,然后定时刷新目标演出的购票页面,一旦发现有票即尝试购买。

实现步骤

  1. 环境准备
    确保你的Python环境已经安装好,并且安装了Selenium库。此外,还需要下载对应的浏览器驱动(例如ChromeDriver),并确保其版本与你的浏览器版本相匹配。

  2. 配置文件准备
    创建一个config.json文件,包含所有必要的配置信息,例如演出的日期、场次、票价等级、实名信息、用户昵称、票数、大麦网官网地址、目标购票地址以及浏览器驱动路径。这些信息将被脚本读取和使用。

  3. 编写选择票务信息的逻辑
    在choose_ticket方法中,根据大麦网页面的实际结构来选择日期、场次和票价等信息。这可能涉及到对Selenium的find_element_by_*和find_elements_by_*方法的使用,以及对页面元素进行点击操作。需要注意的是,页面结构可能会随时间变化,因此选择元素时应尽可能使用稳定的属性(如ID、名称或特定的CSS类)。

  4. 实现订单提交逻辑
    在submit_order方法中,实现点击“立即购买”按钮并提交订单的逻辑。这可能需要处理额外的页面元素,例如选座信息或确认订单信息的弹窗。

  5. 执行脚本
    执行脚本前,请确保所有配置都是正确的,特别是config.json文件中的信息。

在终端或命令提示符下运行脚本。脚本会首先打开大麦网登录页面,此时你需要手动完成登录操作。

登录完成后,脚本会自动导航到目标演出的页面,并根据choose_ticket方法中的逻辑选择票务信息。

最后,submit_order方法将尝试提交订单。由于可能存在需要手动操作的步骤(如选座),请保持对脚本运行过程的监控。

代码分析

初始化和配置读取
__init__方法:这个构造函数负责读取配置文件,并初始化类的属性。这包括演出的日期、场次、票价等级、实名信息、用户昵称、票数、大麦网官网地址、目标购票地址以及浏览器驱动路径。

_init_driver方法:这个私有方法负责初始化Selenium的WebDriver,设置浏览器选项以提升加载速度(如禁用图片和CSS加载),并返回一个WebDriver实例供后续使用。

登录操作
login方法:该方法打开大麦网的登录页面,并等待用户手动完成登录操作。这里采取了手动登录的方式以避开自动化处理可能遇到的验证码等问题。

进入演出页面
enter_concert_page方法:登录成功后,这个方法将浏览器导向目标演出的页面,并等待页面加载完成。

选择票务信息
choose_ticket方法:这个方法是用来选择演出的具体日期、场次和票价等信息的地方。由于实际的页面结构可能复杂且经常变化,这里只提供了一个选择日期的示例代码。实际使用时,需要根据大麦网页面的具体结构进行适当修改。

提交订单
submit_order方法:一旦选好票务信息,这个方法用于点击“立即购买”或类似的按钮以提交订单。这个步骤可能会涉及更多的用户交互(如选座),因此在实际应用中可能需要手动操作。

主流程
主流程:在if name == ‘main’:部分,脚本实例化Concert类,按顺序调用了登录、进入演出页面、选择票务信息、提交订单的方法。这个流程简洁地展示了使用Selenium自动化抢票的基本步骤。

注意事项
该脚本依赖于大麦网页面元素的特定结构,如类名等。如果大麦网更新了页面结构,脚本可能需要相应的更新。

结语
通过Python和Selenium,我们可以相对简单地实现自动抢票功能,为抢购心仪票务增加一份力量。然而,技术的使用需要谨慎,合理利用自动化技术,在不违反平台规则的前提下提高生活效率。希望这篇文章能为你在数字生活中增添一份便利。
请记住,这篇介绍旨在技术分享,使用此类脚本时,请遵守相关平台的规定,理解其中的风险。

部分代码奉上
⬇️⬇️⬇️

# coding: utf-8
import json
from time import sleep, time
from pickle import dump, load
from os.path import exists
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class Concert(object):def __init__(self, config_path='./config.json'):with open(config_path, 'r', encoding='utf-8') as f:config = json.load(f)self.date = config['date']self.session = config['sess']self.price = config['price']self.real_name = config['real_name']self.nick_name = config['nick_name']self.ticket_num = config['ticket_num']self.damai_url = config['damai_url']self.target_url = config['target_url']self.driver_path = config['driver_path']self.driver = Noneself.status = 0self.time_start = 0self.time_end = 0self.num = 0self.setup_driver()  # 初始化浏览器驱动def setup_driver(self):"""设置WebDriver,并预加载cookies,如果存在的话。"""options = webdriver.ChromeOptions()prefs = {"profile.managed_default_content_settings.images": 2,"profile.managed_default_content_settings.javascript": 1,'permissions.default.stylesheet': 2}options.add_experimental_option("prefs", prefs)capa = DesiredCapabilities.CHROMEcapa["pageLoadStrategy"] = "none"self.driver = webdriver.Chrome(executable_path=self.driver_path, options=options, desired_capabilities=capa)if exists('cookies.pkl'):self.driver.get(self.damai_url)  # 需要先访问网站才能设置cookiescookies = load(open("cookies.pkl", "rb"))for cookie in cookies:if 'expiry' in cookie:del cookie['expiry']self.driver.add_cookie(cookie)print(u'Cookie载入完成')else:print(u"Cookie未找到,请先运行get_cookie方法获取")def check_order(self):if self.status in [3, 4, 5]:if self.real_name is not None:print(u"###等待--确认订单--页面出现,可自行刷新,若长期不跳转可选择-- CRTL+C --重新抢票###")try:tb = WebDriverWait(self.driver, 1, 0.1).until(EC.presence_of_element_located((By.XPATH, '/html/body/div[3]/div[2]/div')))except:raise Exception(u"***Error:实名信息选择框没有显示***")print(u'###开始确认订单###')print(u'###选择购票人信息,可手动帮助点击###')init_sleeptime = 0.0Labels = tb.find_elements_by_tag_name('label')# 防止点击过快导致没有选择多个人while True:init_sleeptime += 0.1true_num = 0for num_people in self.real_name:tag_input = Labels[num_people-1].find_element_by_tag_name('input')if tag_input.get_attribute('aria-checked') == 'false':sleep(init_sleeptime)tag_input.click()else:true_num += 1if true_num == len(self.real_name):breakprint("本次抢票时间:", time()-self.time_start)self.driver.find_element_by_xpath('/html/body/div[3]/div[2]/div/div[9]/button').click() # 同意以上协议并提交订单

相关文章:

某麦网自动刷新抢票脚本——手机端(高级版)

某麦网自动刷新抢票脚本——电脑端 小白操作-抵制黄牛–需要更好用更高级关注获取 如何用Python自动抢大麦网演出票? 在数字化时代,购票已经成为我们生活的一部分,无论是音乐会、话剧、体育赛事还是各种展览,抢票几乎成了一项“…...

【MySQL】(基础篇十八) —— 触发器

触发器 本文学习什么是触发器,为什么要使用触发器以及如何使用触发器,还介绍创建和使用触发器的语法。 MySQL语句在需要时被执行,存储过程也是如此。但是,如果你想要某条语句(或某些语句)在事件发生自动执…...

[19] Opencv_CUDA应用之 基于形状的对象检测与跟踪

Opencv_CUDA应用之 基于形状的对象检测与跟踪 形状可以用作全局特征检测具有不同形状的物体,可以是直线、多边形、圆形或者任何其他不规则形状利用对象边界、边缘和轮廓可以检测具有特定形状的对象本文将使用Canny边缘检测算法和Hough变换来检测两个规则形状,即线和圆1. Cann…...

【Echarts】散点图 制作 气泡 类型图表

目录 需求主要代码效果展示注 需求 需参照设计图画出对应图表 主要代码 /**** 数据 ****/ this.dataList [...Array(8).keys()].map((item) > {return {ywlxmc: 业务类型 (item 1),sl: item > 4 ? 50 : 70} })/**** 气泡样式 ****/ const styleList [{offset: [56…...

深入理解Spring Boot的启动过程

深入理解Spring Boot的启动过程 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天,让我们一起深入探讨Spring Boot的启动过程。Spring Boot作为一…...

【深度学习】卷积神经网络CNN

李宏毅深度学习笔记 图像分类 图像可以描述为三维张量(张量可以想成维度大于 2 的矩阵)。一张图像是一个三维的张量,其中一维代表图像的宽,另外一维代表图像的高,还有一维代表图像的通道(channel&#xff…...

游戏AI的创造思路-技术基础-深度学习(3)

继续填坑,本篇介绍深度学习中的长短期记忆网络~~~~ 目录 3.3. 长短期记忆网络(LSTM) 3.3.1. 什么是长短期记忆网络 3.3.2. 形成过程与运行原理 3.3.2.1. 细胞状态与门结构 3.3.2.2. 遗忘门 3.3.2.3. 输入门 3.3.2.4. 细胞状态更新 3.…...

贪心算法练习题(2024/6/24)

1K 次取反后最大化的数组和 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数组 可能的最…...

大厂程序员上班猝死成常态?

大家好,我是瑶琴呀,拥有一头黑长直秀发的女程序员。 近日,连续看到大厂程序员猝死、低血糖晕倒的新闻,同为程序员感到很难受。互联网加班成常态这是既定事实,尤其在这个内卷严重、经济不景气的环境中,加班…...

深度学习 —— 1.单一神经元

深度学习初级课程 1.单一神经元2.深度神经网络3.随机梯度下降法4.过拟合和欠拟合5.剪枝、批量标准化6.二分类 前言 本套课程仍为 kaggle 课程《Intro to Deep Learning》,仍按之前《机器学习》系列课程模式进行。前一系列《Keras入门教程》内容,与本系列…...

Android 12.0 通知发送过程源码分析-Framework

以下NotificationManagerService简称 NMS 1. 通知的发送: NotificationManager.notify(int id, Notification notification) 开始. 源码路径: /frameworks/base/core/java/android/app/NotificationManager.java/***发布通知以显示在状态栏中。 如果通知带有* 相同的 ID 已被…...

提防远程攻击:了解正向 Shell 和反向 Shell 确保服务器安全

前言 在当今网络安全形势日益复杂的环境中,了解正向 Shell 和反向 Shell 的工作原理和使用场景,对于保护你的服务器免受远程攻击至关重要。本文不仅深入解析这两种常见的远程控制技术,还将提供有效的防护建议,帮助你提升服务器的…...

RabbitMQ中CorrelationData 与DeliveryTag的区别

在RabbitMQ中,CorrelationData是一个用于封装业务ID信息的类,它主要在消息确认机制中发挥作用。以下是关于CorrelationData在RabbitMQ中的详细作用: 封装业务ID信息: 当发送消息时,可以将业务ID信息封装在Correlation…...

数据恢复篇:如何在Android上恢复删除的短信

如果您不小心删除了Android设备上的短信并想要检索它们,则可以尝试以下方法: 如何在Android上恢复删除的短信 检查您的备份: 如果您之前备份了Android设备,则可以从备份中恢复已删除的短信。检查您设备的内部存储空间或 Google 云…...

花了大几万的踩坑经验!宠物空气净化器哪个牌子好:希喂、小米、有哈PK

我的闺蜜最近向我大吐苦水,自从家里养了猫之后,她发现家里的空气质量大不如前。宠物的浮毛和排泄物的气味在空气中飘散,让她非常怀念以前没有养猫时家里清新的呼吸环境。她觉得这些漂浮的毛发和异味大大降低了居家的舒适度。 还引起了身体上…...

查普曼大学团队使用惯性动捕系统制作动画短片

道奇电影和媒体艺术学院是查普曼大学的知名学院,同时也是美国首屈一指的电影学院之一,拥有一流电影制作工作室。 最近,道奇学院的一个学生制作团队接手了一个项目,该项目要求使用真人动作、视觉效果以及真人演员和CG角色之间的互动…...

vue 代理

一、常用的发送一个ajax请求: 1、xhr new XMLHttpRequest(),真正开发中不常用 2、jq,jq主要功能是获取dom,周边才是请求接口 3、axios(大名鼎鼎的) axios.get("url").then(response>{},error>{} )4、…...

[leetcode]24-game

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:static constexpr int TARGET 24;static constexpr double EPSILON 1e-6;static constexpr int ADD 0, MULTIPLY 1, SUBTRACT 2, DIVIDE 3;bool judgePoint24(vector<int> &nums) {vector&l…...

网络爬虫的原理

网络爬虫的原理 网络爬虫&#xff0c;作为信息检索和数据分析的重要工具&#xff0c;其原理的核心在于模拟人类浏览网页的行为&#xff0c;通过自动化的方式从互联网上收集所需的数据。在了解了网络爬虫的基本原理后&#xff0c;我们可以进一步探讨其在实际应用中的工作机制以…...

游戏AI的创造思路-技术基础-机器学习(2)

本篇存在大量的公式&#xff0c;数学不好的孩子们要开始恶补数学了&#xff0c;尤其是统计学和回归方程类的内容。 小伙伴们量力而行~~~~~ 游戏呢&#xff0c;其实最早就是数学家、元祖程序员编写的数学游戏&#xff0c;一脉相承传承至今&#xff0c;囊括了更多的设计师、美术…...

【深度学习】记录为什么没有调用GPU

排查CLIP为什么评测推理没有调用GPU&#xff0c;主要是这个代码&#xff1a;https://github.com/OFA-Sys/Chinese-CLIP/blob/master/cn_clip/eval/extract_features.py 第一次认为&#xff1a;因为model并没有to.cuda()。 但是又发现&#xff0c;model.cuda(args.gpu) # 已经加…...

vite 创建vue3项目 集成 ESLint、Prettier、Sass等

在网上找了一大堆vue3脚手架的东西&#xff0c;无非就是vite或者vue-cli,在vue2时代&#xff0c;vue-cli用的人挺多的&#xff0c;也很好用&#xff0c;然而vue3大多是和vite搭配搭建的&#xff0c;而且个人感觉vite这个脚手架并没有那么的好用&#xff0c;搭建项目时只能做两个…...

计算机系统基础知识(上)

目录 计算机系统的概述 计算机的硬件 处理器 存储器 总线 接口 外部设备 计算机的软件 操作系统 数据库 文件系统 计算机系统的概述 如图所示计算机系统分为软件和硬件&#xff1a;硬件包括&#xff1a;输入输出设备、存储器&#xff0c;处理器 软件则包括系统软件和…...

[深度学习]循环神经网络RNN

RNN&#xff08;Recurrent Neural Network&#xff0c;即循环神经网络&#xff09;是一类用于处理序列数据的神经网络&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;、时间序列预测、语音识别等领域。与传统的前馈神经网络不同&#xff0c;RNN具有循环结构&am…...

【C++:list】

list概念 list是一个带头的双向循环链表&#xff0c;双向循环链表的特色&#xff1a;每一个节点拥有两 个指针进行维护&#xff0c;俩指针分别为prev和next,prev指该节点的前一个节点&#xff0c;next为该节点的后一个节点 list的底层实现中为什么对迭代器单独写一个结构体进行…...

解锁 Apple M1/M2 上的深度学习力量:安装 TensorFlow 完全指南

前言 随着 Apple M1 和 M2 芯片的问世&#xff0c;苹果重新定义了笔记本电脑和台式机的性能标准。这些强大的芯片不仅适用于日常任务&#xff0c;还能处理复杂的机器学习和深度学习工作负载。本文将详细介绍如何在 Apple M1 或 M2 芯片上安装和配置 TensorFlow&#xff0c;助你…...

Apache Iceberg:现代数据湖存储格式的未来

Apache Iceberg 是一个开源的表格式&#xff0c;用于在分布式数据湖中管理大规模数据集。它由 Netflix 开发&#xff0c;并捐赠给 Apache 基金会。Iceberg 的设计目标是解决传统数据湖存储格式&#xff08;如 Apache Hive 和 Apache Parquet&#xff09;在大规模数据管理中的一…...

【离散数学·图论】(复习)

一、基本概念 1.一些基本术语&#xff1a; 2.点u&#xff0c;v邻接&#xff08;或相邻&#xff09;: 边e称为关联顶点u和v,or e连接u和v; 3.G(V,E)中&#xff0c;顶点v所有邻居的集合&#xff1a;N(v), 成为v的邻域。 4.度 &#xff1a; deg(v) 5.悬挂点&#xff1a;度为1的…...

【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评

随着远程工作的普及和数字化办公的发展&#xff0c;越来越多的人开始寻找一款具有强大功能和便捷使用的办公软件。在这个时候&#xff0c;ONLYOFFICE 8.1应运而生&#xff0c;成为了许多用户的新选择。ONLYOFFICE 8.1是一种办公套件软件&#xff0c;它提供了文档处理、电子表格…...

Shell 脚本编程保姆级教程(上)

一、运行第一个 Shell 脚本 1.1 Shell 脚本 Shell 脚本&#xff08;shell script&#xff09;&#xff0c;是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本&#xff0c;但读者朋友要知道&#xff0c;shell 和 shell script 是两个不同的概念。 由…...

wordpress复制按钮插件/b2b平台有哪些网站

打算从今天开始学java啊&#xff0c;待会滚去找资料了。现在谈一下学习java阶段性的理解。由于现在对java真的啥也不知道啊&#xff0c;不过还是要瞎鸡儿写点自己的看法&#xff0c;以下看法应该也使适用于其它语言&#xff1a; 第一阶段&#xff0c;入门级&#xff0c;初步地总…...

如何免费制作企业网站/刷推广链接的网站

VerificationCodeView 项目地址&#xff1a;jiaoyaning/VerificationCodeView 简介&#xff1a; Android 自定义方形输入框&#xff0c;仿滴滴验证码输入框 更多&#xff1a;作者 提 Bug 标签&#xff1a; Android 自定义方形输入框&#xff0c;仿滴滴验证码、小篮单…...

盐山网站建设/品牌营销网站建设

T2 题解&#xff1a; x与y相交说明a[x] < b[y]且a[y] < b[x] x在y左边说明b[x] < a[y] 每条线段x还应满足a[x] < b[x] 这相当于一个拓扑排序问题&#xff0c;小的数相当于安排在前面的任务 输出的第i个数就是第i个任务&#xff0c;那么a[1]尽可能小说明任务1要…...

杭seo网站建设排名/佛山优化网站关键词

无论你如何将Hadoop与Spark进行对比&#xff0c;无论Spark生态多么成熟和完善&#xff0c;其底层终归要基于HDFS&#xff0c;毕竟这是目前最成熟的分布式底层文件系统&#xff0c;几乎没有哪家公司愿意重新花费精力研发一个全新的文件系统。本文将讨论Hadoop分布式文件系统(HDF…...

做一门户网站价格/营销宣传方案

一、函数的有用信息在函数内&#xff0c;用 引起来&#xff0c;添加的注释信息可以写函数的功能&#xff0c;以及需要填写和可以扩展的注释词语二、带参数的装饰器及多个装饰器装饰一个函数def timmerout(flag1): # flag1 flagdef timmer(f):def inner(*args,**kwargs):if fla…...

怎么做网站注册名密码/百度手游app下载

用电脑办公的人有个习惯&#xff0c;如果有非常重要的文档要保存&#xff0c;都习惯存到桌面。重要文件存到桌面是非常有安全感的&#xff0c;随时进入电脑桌面都可以看到自己放在桌面的文件。真正熟悉电脑的人会发现&#xff0c;重要文件放在桌面是非常不安全的&#xff0c;因…...