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

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

  • 一、获取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沟通(注明来意):

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Netty的心跳机制怎么实现的?

大家好,我是锋哥。今天分享关于【Netty的心跳机制怎么实现的?】面试题。希望对大家有帮助; Netty的心跳机制怎么实现的? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Netty 的心跳机制用于维持客户端和服务器之间的…

RHEL7+Oracle11.2 RAC集群-多路径(multipath+udev)安装步骤

RHEL7Oracle11.2RAC集群-多路径(multipathudev)安装 配置虚拟存储 使用StarWind Management Console软件,配置存储 dggrid1: 1g*3 Dggrid2: 1g*3 Dgsystem: 5g*1 系统表空间,临时表空间,UNDO,参数文件…

Sybase数据恢复—Sybase数据库无法启动,Sybase Central连接报错的处理案例

Sybase数据库数据恢复环境: Sybase数据库版本:SQL Anywhere 8.0。 Sybase数据库故障&分析: Sybase数据库无法启动。 错误提示: 使用Sybase Central连接报错。 数据库数据恢复工程师经过检测,发现Sybase数据库出现…

数学题转excel;数学题库;数学试卷转excel;大风车excel

一、数学试卷转excel 有些需要刷题的朋友,需要将题库数学题转为excel格式,便于管理 前端时间帮一位朋友实现了数学题转excel,包括选择题、填空题、分析题 示例: 二、问题 数学题是最难以处理的试题,理由如下 1、有…

开源项目:纯Python构建的中后台管理系统

来源:Python大数据分析 费弗里 大家好我是费老师,目前市面上有很多开源的「中后台管理系统」解决方案,复杂如「若依」那种前端基于Vue,后端基于Java的框架,虽然其提供了较为完善的一整套前后端分离权限管理系统解决方…

PS的功能学习

背景差色较大,就魔棒 魔棒的连续就是倒水点的跨越问题 魔棒的容差的选择就有点看经验了,看颜色的统一程度选择 Ctrl D 取消当前所有的选区 至于快速选择工具,和对象选择工具也差不多,只不过控制范围变成了一块一块的&#x…

linux一键部署apache脚本

分享一下自己制作的一键部署apache脚本: 脚本已和当前文章绑定,请移步下载(免费!免费!免费!) (单纯的分享!) 步骤: 将文件/内容上传到终端中 …

DataWhale—PumpkinBook(TASK07支持向量机)

课程开源地址及相关视频链接:(当然这里也希望大家支持一下正版西瓜书和南瓜书图书,支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿) Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》(南瓜…

排序算法之插入排序篇

插入排序 思路&#xff1a; 就是将没有排序的元素逐步地插入到已经排好序的元素后面&#xff0c;保持元素的有序 视频的实现过程如下&#xff1a; 插入排序全过程 代码实现过程如下&#xff1a; public static void Insertion(int[] arr) { for (int i 1; i < arr.length…

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

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

Flutter 权限申请

这篇文章是基于permission_handler 10.2.0版本写的 前言 在App开发过程中我们经常要用到各种权限&#xff0c;我是用的是permission_handler包来实现权限控制的。 pub地址&#xff1a;https://pub.dev/packages/permission_handler permission_handler 权限列表 变量 Androi…

前端学习笔记之FileReader

概念 FileReader接口允许网页应用程序异步读取用户计算机上存储的文件&#xff08;或原始数据缓冲区&#xff09;的内容&#xff0c;使用File或Blob对象来制定要读取的文件或数据。 File对象可以通过用户使用<input>元素选择文件后返回的FileList对象获得&#xff0c;或…

通过shell脚本分析部署nginx网络服务

要求 1.接收用户部署的服务名称 2.判断服务是否安装 已安装&#xff1b;自定义网站配置路径为/www&#xff1b;并创建共享目录和网页文件&#xff1b;重启服务 没有安装&#xff1b;安装对应的软件包 3.测试 判断服务是否成功运行&#xff1b; 已运行&#xff0c;访问网站…

Java基础——(三)对象和类

1. 面向对象程序设计概述 1.1 OOP OOP&#xff1a;Object Oriented Programming&#xff0c;面向对象编程&#xff1b;OOD&#xff1a;Object Oriented Design&#xff0c;面向对象设计&#xff1b;OOA&#xff1a;Object Oriented Analyse&#xff0c;面向对象分析。 面向对…

vue2日历组件

【效果图】 <template><div style"width: 100%"><!-- <div> --><!-- <div>{{ startDate.getMonth() 1 - startDate.getDate() }}</div><div>{{ endDate.getMonth() 1 - endDate.getDate() }}</div> --&g…

Redis中的分布式锁(步步为营)

分布式锁 概述 分布式锁指的是&#xff0c;所有服务中的所有线程都去获取同一把锁&#xff0c;但只有一个线程可以成功的获得锁&#xff0c;其他没有获得锁的线程必须全部等待&#xff0c;直到持有锁的线程释放锁。 分布式锁是可以跨越多个实例&#xff0c;多个进程的锁 分布…

mmsegmentation自己的数据集

我最大的问题就是没安装官方给定的mask转换格式来转换 这种带白色的不行哦&#xff01; 黑色的可以&#xff0c;其实mask*50就可以看清楚标记的轮廓之类的。 数据集格式转换按照A,B,C代码直接转换&#xff1a;https://github.com/TommyZihao/Label2Everything/tree/main/lab…

yolov8的深度学习环境安装(cuda12.4、ubuntu22.04)

目录 一、先安装基础环境包 1.首先给Ubuntu安装Chrome浏览器&#xff08;搜索引擎换成百度即可&#xff09; 2、ubuntu 22.04中文输入法安装 3、安装 terminator 4、安装WPS for Linux 5、安装其它之前需要先安装anaconda 6、安装配置anaconda 7、安装完成anaconda后创建…

洛谷 B3626 跳跃机器人 C语言 记忆化搜索

题目&#xff1a; https://www.luogu.com.cn/problem/B3626 题目描述 地上有一排格子&#xff0c;共 n 个位置。机器猫站在第一个格子上&#xff0c;需要取第 n 个格子里的东西。 机器猫当然不愿意自己跑过去&#xff0c;所以机器猫从口袋里掏出了一个机器人&#xff01;这…

小型文件系统如何选择?FatFs和LittleFs优缺点比较

1 概述 文件系统在嵌入式系统中的作用不可或缺&#xff0c;它提供了对非易失性存储设备&#xff08;如闪存、SD卡等&#xff09;上的数据进行有效组织和管理的能力。通过文件系统&#xff0c;嵌入式系统可以像在传统计算机上一样创建、读取、写入和删除文件&#xff0c;实现了…