爬虫笔记24——纷玩岛自动抢票脚本笔记

news2025/1/9 2:28:15

纷玩岛自动抢票,协议抢票思路实现

  • 一、获取Authorization凭证
  • 二、几个关键的参数
  • 三、几个关键的接口
    • 获取参数v,这个参数其实可以写死,可忽略
    • 通过价位获取演出的参数信息
    • 获取观演人信息,账号提前录入即可
    • 提交订单接口

先看实现图:
在这里插入图片描述

以下内容仅供交流学习使用!!!
获取Authorization是最关键的,X岛目前的接口请求比较简单

一、获取Authorization凭证

这个是用户的认证凭据,是小程序可以确保只有经过授权的用户才能访问敏感资源或执行特定操作。这有助于防止未经授权的访问和操作,从而保护资源的安全性,在后续所有的接口请求中都需要携带这个Authorization参数。类似于就是token令牌,唯一标识符。
在这里插入图片描述

二、几个关键的参数

# 开抢时间
START_TIME = "2024-11-27 15:00:00"
# 演唱会的ID,需要获取对应演唱会的id
PROJECT_ID = '3913913419'
# 要抢的 票价,记得输入有的票价,不然无法筛选对应的座位id
PRICE = 320
# 收件人信息
NAME = '收件人'
# 手机号码
PHONE = '17777777777'
# 观演人数量
COUNT = 2

三、几个关键的接口

获取参数v,这个参数其实可以写死,可忽略

# 获取参数v
    def cdn_token(self):
        headers = {
            'authority': 'livelabassets.livelab.com.cn',
            'accept': '*/*',
            'accept-language': 'zh-CN,zh;q=0.9',
            'content-type': 'application/json',
            'referer': 'https://servicewechat.com/wx5a8f481d967649eb/101/page-frame.html',
            'sec-fetch-dest': 'empty',
            'sec-fetch-mode': 'cors',
            'sec-fetch-site': 'cross-site',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF WindowsWechat(0x63090a13) XWEB/8555',
            'xweb_xhr': '1',
        }

        params = {
            't': str(int(time.time() * 1000)),
        }

        response = requests.get('https://livelabassets.livelab.com.cn/app/homepage/cdnToken.json', params=params,
                                headers=headers)
        # print(response.status_code)
        # 这里会返回一个v参数,但经过验证就是写死不变的,其实这个接口不用请求直接写死也可以
        # print(response.json()['data']['v'])
        self.v = response.json()['data']['v']

通过价位获取演出的参数信息

 # 通过价位获取想要价位的座位id
    def ticket_info(self):
        seat_list = list()
        for seat in self.perform_info['seatPlans']:
            seat_list.append(str(seat['seatPlanId']))
        seatPlanIds = ','.join(seat_list)
        response = requests.get(
            f'https://api.livelab.com.cn/performance/app/ticket/ticketInfo?seatPlanIds={seatPlanIds}&projectId={PROJECT_ID}&v={self.v}',
            headers=self.headers,
        )
        # print(response.status_code)
        for temp in response.json()['data']['ordinaryTicketVos']:
            if temp['seatPlanPrice'] == PRICE:
                return temp

获取观演人信息,账号提前录入即可

# 获取观演人信息
    def get_audience_list(self):
        response = requests.get('https://api.livelab.com.cn/member/member/bearer/app/list', headers=self.headers)
        print(response.status_code)
        return response.json()['data']

提交订单接口

    # 生成订单接口
    def create_orders(self):
        ticket_info = self.ticket_info()
        audiences = self.get_audience_list()
        frequent_ids = []
        for i in range(COUNT):
            frequent_ids.append(audiences[i]['frequentContactsId'])
        print(ticket_info)
        json_data = {
            'deliveryType': 1,
            'contactName': NAME,
            'contactPhone': PHONE,
            'combineTicketVos': None,
            'ordinaryTicketVos': None,
            'payment': ticket_info['seatPlanPrice'],
            'totalPrice': ticket_info['seatPlanPrice'] * COUNT,
            'performId': self.perform_info['id'],
            'projectId': PROJECT_ID,
            'privilegeCodeList': [],
            'audienceCount': COUNT,
            'frequentIds': frequent_ids,
            'seatPlanIds': [
                ticket_info['seatPlanId'],
            ],
            'blackBox': ':0',
        }

        response = requests.post('https://api.livelab.com.cn/order/app/center/v3/create', headers=self.headers, json=json_data)
        if response.status_code == 200:
            print(response.status_code)
            print(response.text)
            return response.json()["msg"]

以上就是X岛实现抢票的关键几个接口!冲!
可添加我V沟通(注明来意):

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

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

相关文章

并发专题(7)之JUC并发工具源码分析

一、CountdownLatch源码分析 1.1 CountdownLatch应用 CountDownLatch本身就好像一个计数器,可以让一个线程或多个线程等待其他线程完成后再执行。 public static void main(String[] args) throws InterruptedException, BrokenBarrierException {// 声明CountDow…

SQL进阶技巧:如何寻找同一批用户 | 断点分组应用【最新面试题】

目录 0 问题描述 1 数据准备 2 问题分析 ​编辑 3 小结 0 问题描述 用户登录时间不超过10分钟的视为同一批用户,找出以下用户哪些属于同一批用户(SQL实现) 例如: user_name time a 2024-10-01 09:55 b 2024-10-01 09:57 c 2024-10-01…

分页查询日期格式不对

方式一:在属性上加入注解,对日期进行格式化 方式二:在 WebMvcConfiguration 中扩展Spring MVC的消息转换器,统一对日期类型进行格式化处理 /*** 统一转换处理扩展spring mvc* 后端返回前端的进行统一转化处理* param converters*/Overrideprotected voi…

redis的应用--分布式锁

redis的应用--分布式锁 一、分布式锁的概念二、分布式锁的基础实现2.1初步实现2.2引入过期时间2.3引入校验id2.4引入lua脚本2.5引入watch dog(看门狗)2.6引入Redlock算法 三、分布式锁的种类 一、分布式锁的概念 在⼀个分布式的系统中, 也会涉及到多个节…

构网型与跟网型混合直驱风电场并网稳定域研究

传统的风机变流器控制采用跟网型(grid-following,GFL)控制,需依赖于锁相环跟踪电网电压的频率/相位信息,以实现与电网的同步。随着能源电力系统的转型,电网逐渐转变为呈现低短路比(short-circuitratio,SCR&…

异步处理优化:多线程线程池与消息队列的选择与应用

目录 一、异步处理方式引入 (一)异步业务识别 (二)明确异步处理方式 二、多线程线程池(Thread Pool) (一)工作原理 (二)直面优缺点和适用场景 1.需要快…

3DMAX星空图像生成器插件使用方法详解

3DMAX星空图像生成器插件,一键生成星空或夜空的二维图像。它可用于创建天空盒子或空间场景,或作为2D艺术的天空背景。 【主要特点】 -单击即可创建星空图像或夜空。 -星数、亮度、大小、形状等参数。 -支持任何图像大小(方形)。…

eltable el-table 横向 滚动条常显

又遇到了难受的问题,el-table嵌入在一个div里面,结果因为内容太多,横向、纵向我都得滚动查看! 结果发现横向滚动时只能让它纵向触底后才能进行横向操作,这就很变态,明显不符合用户操作习惯。如下图: 要先纵…

《C++ Primer Plus》学习笔记|第8章 函数探幽 (24-11-30更新)

文章目录 8.1 内联函数8.2 引用变量8.2.1 创建引用变量8.2.2 将引用用作函数参数8.2.3 引用的属性和特别之处特点1:在计算过程中,传入的形参的值也被改变了。特点2:使用引用的函数参数只接受变量,而不接受变量与数值的运算左值引用…

在 Mac ARM 架构(例如 M1 或 M2 芯片)上安装 Node.js

文章目录 方法一:使用 Homebrew 安装 Node.js方法二:使用 Node Version Manager (NVM) 安装 Node.js方法三:从 Node.js 官方网站下载安装包注意事项 在 Mac ARM 架构(例如 M1 或 M2 芯片)上安装 Node.js 可以通过几种不…

电脑提示报错“Directx error”怎么解决?是什么原因导致的?游戏软件提示“Directx error”错误的解决方案

DirectX Error(DX错误)通常指的是在使用基于DirectX技术的应用程序(尤其是游戏)时遇到的问题。这个问题可能由多种因素导致,以下是一些可能的原因及相应的解决方案: 可能的原因 DirectX版本不匹配&#x…

JAVA:Spring Boot 3 实现 Gzip 压缩优化的技术指南

1、简述 随着 Web 应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈。为了减少数据传输量,提高用户体验,我们可以使用 Gzip 压缩 HTTP 响应。本文将介绍如何在 Spring Boot 3 中实现 Gzip 压缩优化。 2、配置 Spring Boot 3 对…

哈希表,哈希桶的实现

哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素 时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即 O(logN),搜索的效率取决…

从 EXCEL 小白到 EXCEL 高手的成长之路

在职场与日常生活中,Excel 作为一款强大的数据处理与分析工具,扮演着不可或缺的角色。无论是初学者还是资深职场人士,掌握 Excel 技能都能极大地提高工作效率。那么,从一个 Excel 小白蜕变成为 Excel 高手,究竟需要多久…

TiDB 无统计信息时执行计划如何生成

作者: weiyinghua 原文来源: https://tidb.net/blog/4c49ac0d 一、Pseudo 统计信息总体生成规则 TiDB 在表无统计信息时,不会进行动态采样,而是用静态的、预设规则以及经验假设来生成计划。用函数 PseudoTable 创建一个伪统…

org.apache.commons.lang3包下的StringUtils工具类的使用

前言 相信平时在写项目的时候,一定使用到StringUtils.isEmpty();StringUtils.isBlank();但是你真的了解他们吗? 也许你两个都不知道,也许你除了isEmpty/isNotEmpty/isNotBlank/isBlank外,并不知道还有isAnyEmpty/isNon…

【工具推荐】dnsx——一个快速、多用途的 DNS 查询工具

basic/基本使用方式 echo baidu.com | dnsx -recon # 查询域名所有记录echo baidu.com | dnsx -a -resp # 查询域名的a记录echo baidu.com | dnsx -txt -resp # 查询域名的TXT记录echo ip | dnsx -ptr -resp # ip反查域名 A记录查询 TXT记录查询 ip反查域名 help/帮助信息 输…

Hive高可用配置

在hive的商用上没有集群一说,而且它本身也不是数据库,只是hadoop的数据sql化工具,但是hive可以配置高可用,通常业内对元数据服务会开5个,而HS2服务开3个,来保证hive服务的高可用 配置方式也很简单&#xf…

使用数学方法实现K-Nearest Neighbors(KNN)算法

目录 ​编辑 引言 KNN算法的数学基础 1. 距离度量 欧氏距离 曼哈顿距离 2. 寻找最近邻 3. 决策规则 分类 回归 4. 权重 KNN算法的实现步骤 1. 参数选择 2. 实现 导入必要的库 加载数据集 划分训练集和测试集 创建KNN模型 训练模型 预测测试集 计算准确率 …

提升用户体验、创新产品与高效运营,企业发展三驾马车

​在当今竞争激烈的市场环境中,企业要想脱颖而出并持续发展,需同时在提升用户体验、推动产品创新以及实现内部高效运营方面下功夫。 提升用户体验至关重要。它能提高用户满意度和忠诚度,增加用户口碑与推荐,提升企业品牌形象。可通…