欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 爬虫笔记24——纷玩岛(某岛)自动抢票脚本笔记

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

2024/11/30 8:43:43 来源:https://blog.csdn.net/Yima_Dangxian/article/details/144078647  浏览:    关键词:爬虫笔记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,这个参数其实可以写死,可忽略

# 获取参数vdef 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']

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

 # 通过价位获取想要价位的座位iddef 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沟通(注明来意):可购买学习资料提升自己,靠别人不如靠自己,不难的

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com