chinahrt 题库

server/2024/12/28 0:31:37/

在这里插入图片描述
只针对 https://ouc-sz.chinahrt.com/center/MyExam

import requests
import time
import random
import pandas as pd
from openpyxl import load_workbookexcel_file = r'C:\Users\N3verL4nd\Desktop\exam_answers.xlsx'# 定义请求头,包含 Authorization
headers = {"Authorization": "你的token","Referer": "https://ouc-sz.chinahrt.com/exam?examInfo=%7B%22classBatchId%22%3A%22389140424587673600%22,%22examId%22%3A%223f91a58085d5408a8cb3364ce65db556%22%7D","sec-ch-ua": '"Google Chrome";v="131", "Chromium";v="131", "Not_A Brand";v="24"',"sec-ch-ua-mobile": "?0","sec-ch-ua-platform": "Windows","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
}for i in range(10):sleep_time = random.randint(0, 10)print(f"第 {i + 1} 次休眠,时间为: {sleep_time} 秒")answer_list = []# 第一步:发送 GET 请求get_url = "https://ouc-sz.chinahrt.com/api/web/exam/goExam?examId=3f91a58085d5408a8cb3364ce65db556"get_response = requests.get(get_url, headers=headers)# 检查请求是否成功if get_response.status_code == 200:# 解析 JSON 响应response_data = get_response.json()if response_data.get("code") == "SUCCESS":# 获取 idrecord_id = response_data["data"]["recordInfo"]["id"]print(f"Retrieved recordId: {record_id}")# 第二步:发送 POST 请求post_url = "https://ouc-sz.chinahrt.com/api/web/exam/submit"post_data = {'recordId': record_id}# 发送 POST 请求post_response = requests.post(post_url, headers=headers, data=post_data)if post_response.status_code == 200:print("POST request successful")print(post_response.json())  # 打印返回的 JSON 数据# 获取当前已有的 question_id 列表(避免重复保存)existing_question_ids = set()try:# 如果 Excel 文件已经存在,加载文件并读取 question_id 列df_existing = pd.read_excel(excel_file, sheet_name='Sheet1')existing_question_ids = set(df_existing['question_id'].values)except FileNotFoundError:# 如果文件不存在,则跳过print(f"File {excel_file} not found. A new file will be created.")# 遍历返回的答题列表for item in post_response.json()['data']['answerList']:submit_id = item['id']question_id = item['questionData']['questionBasicInfo']['id']content = item['questionData']['questionBasicInfo']['content']answer = item['questionData']['questionBasicInfo']['answer']# 只有当 question_id 不在现有文件中时,才添加到 answer_listif question_id not in existing_question_ids:answer_list.append({'submit_id': submit_id, 'question_id': question_id, 'Content': content, 'Answer': answer})existing_question_ids.add(question_id)  # 更新已保存的 question_idelse:print(f"POST request failed with status code {post_response.status_code}")else:print("Error: Invalid response code.")else:print(f"GET request failed with status code {get_response.status_code}")# 如果有新的数据,保存到 Excel 文件if answer_list:df = pd.DataFrame(answer_list)# 如果文件存在,追加数据;如果文件不存在,则创建新文件try:with pd.ExcelWriter(excel_file, mode='a', engine='openpyxl', if_sheet_exists='overlay') as writer:writer.workbook = load_workbook(excel_file)if 'Sheet1' in writer.book.sheetnames:df.to_excel(writer, index=False, header=False, sheet_name='Sheet1', startrow=writer.book['Sheet1'].max_row)else:df.to_excel(writer, index=False, sheet_name='Sheet1')print(f"数据已追加到 {excel_file}")except FileNotFoundError:# 如果文件不存在,创建新的 Excel 文件并保存数据df.to_excel(excel_file, index=False, engine='openpyxl')print(f"文件不存在,已创建新文件并保存数据到 {excel_file}")else:print("没有新的答案需要保存。")time.sleep(sleep_time)

http://www.ppmy.cn/server/153761.html

相关文章

echarts进度仪表盘形式

const pointerData 55; // 仪表指针数据const steps 10; // 总共10个步骤 const borderColor {colorStops: [{offset: 0,color: rgba(208, 244, 255, 1)}, {offset: 1,color: rgba(35, 190, 240, 1)}] }; // 边框颜色// 使用数组和循环动态生成颜色数组 const axisLinecolor…

力扣-图论-20【算法学习day.70】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…

前端的通信方式有哪些?比如子组件父组件间、子组件子组件间、其他等。。。

一、组件间通信 父组件与子组件 通过 Props&#xff08;单向数据流&#xff09; 父组件通过 props 将数据传递给子组件。 子组件不能直接修改父组件的状态&#xff0c;只能通过触发事件或回调通知父组件。适用场景&#xff1a; 父组件控制子组件的数据。 // 父组件 <Child…

基于单片机的程控电源显示控制电路设计

摘要 : 介绍了基于单片机程控电源显示控制电路的硬件设计和软件实现 , 该设计可以实现程控电源的输出显示和手动控制功能。 实践验证 , 该设计具有很好的使用效果和工程价值 。 关键词 : 程控电源 ; 显示控制 ; 单片机 0 引言 程控电源广泛地应用在工业控制和科学研究的…

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU

目录 前言—— DAMODEL&#xff08;丹摩智算&#xff09; 算力服务 直观的感受算力提供商的强大​ 平台功能介绍​ 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…

【Leetcode 热题 100】208. 实现 Trie (前缀树)

问题背景 T r i e Trie Trie 或者说 前缀树 是一种树形数据结构&#xff0c;用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景&#xff0c;例如自动补全和拼写检查。 请你实现 Trie 类&#xff1a; Trie() 初始化前缀树对象。void insert(String word…

如何给负载均衡平台做好安全防御

在现代网络架构中&#xff0c;负载均衡&#xff08;Load Balancing&#xff09;扮演着至关重要的角色。它不仅负责将流量分配到多个服务器以确保高效的服务交付&#xff0c;还作为第一道防线来抵御外部攻击。为了保护您的应用程序和服务免受潜在威胁&#xff0c;必须对负载均衡…

连锁餐饮行业数据可视化分析方案

引言 随着连锁餐饮行业的迅速发展&#xff0c;市场竞争日益激烈。企业需要更加精准地把握运营状况、消费者需求和市场趋势&#xff0c;以制定科学合理的决策&#xff0c;提升竞争力和盈利能力。可视化数据分析可以帮助连锁餐饮企业整合多源数据&#xff0c;通过直观、动态的可…