复制
收藏
提问
简洁

import requests # 登录信息 login_url = 'https://pcticket.cstm.org.cn/prod-api/login' login_data = { 'loginClient': '1', 'loginType': 1, 'password': 'Xbw190614', # 替换为实际密码 'userType': '2', 'username': '91110108MADKKWBK97' # 替换为实际用户名 } headers = { 'accept': 'application/json', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6', 'content-type': 'application/json;charset=UTF-8', 'origin': 'https://pcticket.cstm.org.cn', 'referer': 'https://pcticket.cstm.org.cn/team/index', 'sec-ch-ua': '"Microsoft Edge";v="111", "Not(A:Brand";v="8", "Chromium";v="111"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36 Edg/111.0.1661.62' } # 创建会话对象 session = requests.Session() # 登录 try: print('正在发送登录请求...') response = session.post(login_url, json=login_data, headers=headers) response.raise_for_status() # 检查HTTP状态码 print('登录响应:', response.text) # 打印响应内容以便调试 if response.status_code == 200 and response.json().get('token'): # 从登录响应中提取Bearer token bearer_token = response.json()['token'] headers['authorization'] = f'Bearer {bearer_token}' print('登录成功') else: print('登录失败: 响应不正确') exit() except requests.exceptions.RequestException as e: print(f'登录请求失败: {e}') exit() # 获取日期和场次信息 get_hall_url = 'https://pcticket.cstm.org.cn/prod-api/pool/getScheduleByHallId' params = { 'hallId': 1, # 替换为你想选择的实际展厅ID 'openPerson': 3, 'queryDate': '2024/07/03', # 替换为你想选择的实际日期 'saleMode': 1, 'single': 'false' } print('正在发送获取可用场次的请求...') response = session.get(get_hall_url, params=params, headers=headers) if response.status_code == 200: available_slots = response.json() print(f'可用场次(日期{params["queryDate"]}): {available_slots}') # 打印整个响应内容 print('获取可用场次成功') else: print('获取可用场次失败') exit() # 从available_slots['data']中提取slot_id try: slots_data = available_slots['data'] if slots_data: slot_id = slots_data[0]['hallScheduleId'] # 确认键名 hallScheduleId 是否正确 print(f'选择的场次ID: {slot_id}') else: print('没有找到可用场次') exit() except (KeyError, IndexError) as e: print(f'获取场次ID时出错: {e}') exit() # 实际选择日期和场次的URL select_date_url = '请在此处填写实际监控到的API端点' # 选择日期和场次 select_date_data = { 'date': '2024-07-03', # 替换为你想选择的实际日期 'slot': slot_id # 替换为实际的场次ID } print(f'发送选择日期和场次请求,数据: {select_date_data}') print(f'选择日期URL: {select_date_url}') print(f'选择日期请求头: {headers}') print('正在发送选择日期和场次请求...') response = session.post(select_date_url, json=select_date_data, headers=headers) # 打印响应内容以便调试 print(f'选择日期响应状态码: {response.status_code}') print(f'选择日期响应内容: {response.text}') if response.status_code == 200 and "选择成功" in response.text: print(f'已选择日期: {select_date_data["date"]}, 场次: {select_date_data["slot"]}') print('选择日期和场次成功') else: print('选择日期和场次失败') print('请检查URL和请求参数是否正确。') exit() # 上传文件 upload_url = 'https://pcticket.cstm.org.cn/prod-api/config/orderRule/importTravel' # 确认此URL是否正确 file_path = 'path/to/your/file.extension' # 替换为实际文件路径 with open(file_path, 'rb') as file: files = {'file': file} print('正在发送文件上传请求...') response = session.post(upload_url, files=files, headers=headers) if response.status_code == 200 and "上传成功" in response.text: print('文件上传成功') else: print('文件上传失败') exit() # 完成购买 purchase_url = 'https://pcticket.cstm.org.cn/prod-api/team/purchase' # 确认此URL是否正确 purchase_data = { # 根据需要填充购票信息,这里假设需要提供相关购票信息 'ticket_type': 'adult', # 替换为实际购票类型 'quantity': 1 # 替换为实际购票数量 } print('正在发送购买请求...') response = session.post(purchase_url, json=purchase_data, headers=headers) if response.status_code

2月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

看起来你正在尝试使用Python的requests库来实现一个自动化的登录、获取信息、选择日期和场次、上传文件以及购买票务的流程。不过,你的代码中有几个地方需要特别注意:

  1. 登录信息:确保你的用户名和密码是正确的,并且符合API的要求。
  2. Bearer Token:在登录成功后,你需要从响应中提取Bearer Token,并将其添加到后续请求的headers中。
  3. API端点:你需要确保所有的API端点(URL)是正确的,并且你有权限访问它们。
  4. 参数和数据:确保你发送的参数和数据符合API的要求,包括日期格式、文件路径等。
  5. 错误处理:你的代码中已经有一些基本的错误处理,但是可能需要更详细的异常处理来确保程序的健壮性。

此外,你的代码中有几个地方使用了占位符(如select_date_url),你需要将它们替换为实际的API端点。

如果你需要帮助来调试或者完善你的代码,或者有关于如何使用requests库的具体问题,请随时告诉我。我可以帮助你理解代码的工作原理,或者提供一些改进的建议。

你觉得结果怎么样?
requests库使用教程
Python中requests库的session对象如何使用
如何使用requests库发送POST请求
Python中requests库的异常处理方法
requests库中如何设置HTTP头部信息
Python中requests库的json参数使用示例 Python中requests库的headers参数设置

以上内容由AI搜集生成,仅供参考

在线客服