【Python脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

news2024/11/15 17:34:39

文章目录

  • 前言
  • 一、分析购票过程
  • 二、Selenium 模拟浏览器操作
  • 三、逆向工程:抢票接口
  • 总结


前言

你是否错过了周杰伦的票,最近又没抢到五月天的票,不要太难过,今晚有张学友的票,后天还有张杰的票,加油哦!

Python配套案例源码、资料点击领取福利

在这里插入图片描述

为了帮助你在激烈的抢票竞争中获得更大的成功机会,本文将介绍抢票软件的实现原理以及我所了解的一些抢票方式。但是,请不要过度将希望寄托于抢票软件,它有时也不灵,经过我的验证,即使你用到了抢票软件,也不一定能抢到票。
在这里插入图片描述

票务平台会经常调整反爬策略打击爬虫行为,如果希望抢票软件保持较高的成功率,是需要开发者针对票务平台的打击策略作出逻辑调整,这个成本是很高的,所以你能随手获得的抢票软件很大概率是抢不到票的或者说是不安全的。

在调研过程发现一个有意思的点 “黄牛的票从来不是抢来的”。相关规定,面向市场公开销售的营业性演出门票数量,不得低于核准观众数量的70%。 而剩下的那 30%,即非公开销售的票,则是黄牛票的主要来源,也叫渠道票。这里面涉及主办方对热门票和冷门票的售票策略,黄牛在这链条中扮演着重要的角色,只要演唱会门票的二级市场不会消失,黄牛就永远不会消失,对于市场本身来说,愿意花更多钱买黄牛票的人,一定是更有需求的人,黄牛不过是市场调节的人格化。


一、分析购票过程

现在无论是买火车票、飞机票、演唱会票基本都是使用电子支付网上购票,之后得到一张电子票凭证,进场前打印纸质票或者闸机核销票据二维码进场,那么我们从用户角度看下,一次完整的购票过程是什么样。

在这里插入图片描述
用户的购票流程:

  • 首先用户登录 票务 APP 搜索爱豆的门票,点击查看门票详情,然后选择场次和票档。等待抢票倒计时,才能进入到下一个页面;
  • 倒计时结束后,开抢按钮被点亮,用户进入下一步选择观演人,确认信息后选择付款方式提交订单;
  • 如果手速足够快、运气足够好,抢到了票就会唤起所选的支付方式 APP 提示付款;如果没有抢到则会提示拥堵,跳转到票档选择页面。

下面,我将这个图补充一下,思考下哪些步骤是用户可以提高出票成功率的关键时间节点:

在这里插入图片描述
很显然,用户在倒计时之前看不到的页面就是竞争手速的关键时机,当这个开抢按钮被倒计时点亮的一瞬间,要以最快的速度点击到达隐藏页面,然后选中观演人,通常使用默认的支付方式,最后提交订单。一旦订单被提交成功,就说明锁定了席位抢到了票。如果用户在规定的时间内未付款,该席位会重新流入票池,捡漏的人就可以抢到。

到这里,我们知道了购票流程和提高抢票成功率的突破口,人的手速肯定没有机器快,接下来介绍下两种常用的技术抢票方案。

二、Selenium 模拟浏览器操作

在使用 Chrome 浏览器,用户可以使用鼠标滑动、按键点击以及键盘输入,作为信号输入设备向浏览器传达指令,浏览器收到指令后执行渲染。

这里提到的 Selenium WebDriver 是对浏览器提供的原生 API 进行封装,使用这套 API 可以操控浏览器的开启、关闭,打开网页,操作界面元素,控制 Cookie。简单说就是,可以通过写代码的方式来自动实现用户鼠标和键盘信号的输入。这么一来,可以做的事就非常多了。
在这里插入图片描述
下面是一个简单脚本,它首先打开 chrome 浏览器输入 google 的网址,等待 5 秒,浏览器网页打开后,找到输入框输入 ”ChromeDriver“,然后模拟点击搜索按钮,就能看到浏览器上搜索的结果。

import time

from selenium import webdriver
from selenium.webdriver.common.by import By

browser.get("https://www.google.com")
time.sleep(5)
# 查找元素
search_box = browser.find_element(By.NAME, 'q')
# 模拟按键输入
search_box.send_keys('ChromeDriver')
# 搜索框模拟回车
search_box.submit()
time.sleep(5)
# 关闭所有窗口
browser.quit()

回到抢票的主题上来,我们可以使用这种技术能力,写一个 Python 脚本,在本地机器上执行起来。脚本内容是在指定的时间打开浏览器,打开票务网页,然后自动模拟用户选择观影人然后自动提交订单。(在这里我原本很想做一个演示视频,理解起来更直观,奈何时间精力有限,这里就不详细介绍 Selenium WebDriver 开发环境配置,感兴趣的可以继续深挖。)

三、逆向工程:抢票接口

什么是逆向?即通过技术手段对票务 APP 的通讯流量抓包,定位 获取票档、提交订单的关键请求解密 https 流量,然后分析解密流量数据。在这里插入图片描述

我们继续回到这张图,仔细观察会发现,用户查看门票详情以及选择票档等一些动作都是 APP 上完成的都是提前加载好的,而真正决定用户抢票的是 “提交订单” 这个关键请求。如果我们可以将这个这个请求的流量抓到,然后分析其参数构造规则,就可以编写程序自动发送请求了。

在这里插入图片描述
下面抓包示例,选取了一个门票,抓包获取了其票档信息。

在这里插入图片描述
以此类推,抓包 下单接口 观察其参数构成,编写程序模拟用户请求。

# 等待开售
def wait_for_buy():
    # 抢购时间
    start_timestamp = 1686475533
    # 当前时间
    current_timestamp = int(time.time())
    while current_timestamp > start_timestamp:
        # 开始购买
        place_order()

这里简要介绍了下实现思路和方向,不展开逆向过程的细节。具体实现没有这么简单的,有攻击方必然有防守方,票务方为了保障平台方利益,势必会定义打击策略,例如,我们会看到验证码从文字到图片再到滑块验证的一个迭代过程。技术方面是一个问题,法律方面也是一个问题,所以全当一次攻防演练的学习,不要伤害票务方的利益。

总结

生活有时很操蛋,我们会感到力不从心,但请守住你的热爱,别让它被挫折磨灭”。祝大家买票的时候都能以正常价格抢到自己心仪的演唱会门票 ~

请添加图片描述

↓ ↓ ↓ 加下方名片找我,直接拿源码还有案例 ↓ ↓ ↓

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/671353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

openvpn搭建访问路由器摄像头

openvpn搭建 技术博客 http://idea.coderyj.com/ 1.环境 华为云服务器 操作系统 centos7 2.安装部署 1.安装 openvpn 和 easy-rsa(该包用来制作 ca 证书) # 安装 epel 源 yum install epel-release -y# 安装 yum install openvpn easy-rsa2、配置 /e…

如何全面评价一个低代码平台?

🐱 个人主页:不叫猫先生,公众号:前端舵手 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步…

Goby 漏洞发布|WordPress Extensive VC Addons 插件 options[template] 文件包含漏洞

漏洞名称:WordPress Extensive VC Addons 插件 options[template] 文件包含漏洞 English Name:WordPress Plugin Extensive VC Addons File Inclusion Vulnerability CVSS core: 9.8 影响资产数:2583 漏洞描述: Extensive VC…

Netty核心技术七--Google Protobuf

1.编码和解码的基本介绍 编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码 codec(编解码器) 的组成部分有两个:decoder(解码器)和encoder(编码器)。encoder 负责把…

【干货】Android系统定制基础篇:第十六部分(双屏异触、定时开关机与看门狗)

一、Android双屏异触-指定触摸为副屏触摸 在双屏异显产品中,有时候主副屏都带有触摸屏,并且要求主副屏触摸各自操作互不干扰。 Android 现有框架中已经支持副输入设备的逻辑,只是默认将所有的外部热插拔设备统一指定为副输入设备&#xff0…

XILINX 7系列FPGA封装之芯片常见封装技术详解

🏡《Xilinx FPGA开发指南》 目录 1,概述2,常用封装技术2.1,Wire-bond chip-scale2.2,Wire-bond fine-pitch2.3,Flip-chip lidless2.4,Ruggedized flip-chip2.5, Flip-chip fine-pitc…

【算法设计与分析】期末复习

文章目录 复习大纲第一章算法概述1.1算法与程序1.2 算法复杂性分析 第二章递归与分治策略分治法的基本思想递归与分治的关系:用分治法解决的问题的几个特征:例题: 第三章动态规划动态规划的基本思想:分治与动态规划算法的异同&…

mine vpn

client remote ‘whvpn.deepin.com’ 1194 auth-user-pass dev tun proto tcp nobind auth-nocache script-security 2 persist-key persist-tun user nm-openvpn group nm-openvpn -----BEGIN CERTIFICATE----- MIIDPDCCAiSgAwIBAgIUUTvTCz6BndUDTIVTBxpKL19mEMkwDQYJKoZIhvcN…

JAVA开发(spring RestFull风格Feign使用总结)

现在大多数的springboot都是使用RestFull风格的接口,是Feign进行远程调用。 一、Feign介绍: Feign是Spring Cloud Netflix组件中的一个轻量级RESTFULL的http服务客户端,实现了负载均衡和Rest调用的开源框架,封装了Ribbon和RestTe…

使用谷歌 Chrome 浏览器禁用网页 JavaScript

使用谷歌 Chrome 浏览器禁用网页 JavaScript 文章目录 使用谷歌 Chrome 浏览器禁用网页 JavaScriptI - 概述1.1 - JavaScript 的功能1.2 - 为何要禁用 JavaScript II - 禁用 JavaScript 的方式2.1 - Chrome 调试工具2.2 - Chrome 黑名单 I - 概述 1.1 - JavaScript 的功能 Web…

Fegin 中统一处理调用的结果

背景 项目中,微服务环境下,有很多时候,都需要调用其他服务,而且其他服务基本上都有一个骨架类(如下图),为了不用每次调用都去判断是否成功,所以需要统一处理接口返回的结果 思考 跟踪代码发现,…

Seata Saga 模式理论学习、生产级使用示例搭建及注意事项(二) | Spring Cloud58

一、前言 通过以下系列章节: docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 Seata XA 模式理论学习、使用…

Dubbo服务发现原理

一、Dubbo服务发现设计 Dubbo提供的是一种Client-Based的服务发现机制,依赖第三方注册中心组件来协调服务发现过程,支持常用的注册中心如Nacos、Connsul、Zookeeper等 Dubbo服务发现机制的基本工作原理图: 服务发现包含提供者、消费者和注册…

MySQL 被 PG 干翻了。。

出品 | OSC开源社区(ID:oschina2013) Stack Overflow 发布了 2023 年开发者调查报告,据称共计超过 9 万名开发者参与了此次调查。 完整报告包含了受访开发者画像,以及关于开发技术、AI、职业、社区等方面的内容。本文主要介绍关于…

ICC2: 工具是如何控制局部利用率的?

分析congestion map时不难发现,route congestion高的地方局部利用率往往要比周围低,这时疑问就来了,既然standard cell的分布不是均匀的,那局部再降一降彻底解决congestion问题不好嘛?工具是如何控制这种congestion driven的行为的呢? 在place_opt以及clock_opt的log里都…

Apache Atlas高级搜索语法示例

from hive_table;hive_table from hive_table where name xxx or name yyy from hive_table where name ["xxx", "yyy"] from hive_table where name LIKE *_xxx hive_db where name like "???dm?*" hive_column where table.name …

Dcat Admin 2 集成富文本编辑器 wangEditor 5

由于默认的 TinyMCE 个人不是很喜欢,所以替换成国产的富文本编辑器 wangEditor Dcat Admin 文档示例:集成富文本编辑器 wangEditor 但是官方的示例是针对 wangEditor 4 编写的,这里仅指出对版本 5 的差异部分 获取文件 将以下三个文件保存…

快码住! 结构体内存对齐(计算结构体大小) 干货满满!

文章目录 结构体内存对齐规则结构体大小计算为什么存在内存对齐?设计结构体的技巧如何修改默认对齐数? 结构体内存对齐规则 我们知道,整型变量有自己的大小,浮点型变量有自己的大小,数组也有自己的大小,那…

血流动力学与血压(一)--平均动脉压

平均动脉压 在血管血流动力学研究中,心血管系统通常被认为是一个简单的液压回路,由泵(心脏)组成,泵(心脏)有节奏地活动(收缩 --> 舒张 --> 收缩 --> 舒张 --> 收缩…&am…

中国一重集中采购平台的建设经历和亮点

中国一重前身为第一重型机器厂,是“一五”期间建设156项重点工程项目之一,始建于1954年,是中央管理的涉及国家安全和国民经济命脉的国有重要骨干企业之一,是国家创新型试点企业、国家高新技术企业,拥有国家级企业技术中…