首先展示一下我们的答案
{'1': ['对象'], '2': ['关系']}
{'1': ['非数值计算'], '2': ['操作']}
{'1': ['线性表']}
['D']
['B']
['B']
['C']
['C']
{'1': ['操作']}
{'1': ['数据关系', '数据对象上关系的集合']}
{'1': ['性质相同']}
{'1': ['物理结构']}
{'1': ['存储结构', '操作表示']}
['C']
['B']
['D']
['B']
['D']
['true']
['false']
['false']
['false']
['true']
['C']
['B']
['A']
['C']
['D']
['false']
['false']
['false']
['false']
['false']
['C']
['B']
['D']
['A']
['D']
['C']
['B']
['D']
['A']
['A']
{'1': ['栈']}
{'1': ['链栈', '链式栈']}
{'1': ['先进先出']}
{'1': ['队头'], '2': ['队尾']}
['B']
['C']
['C']
['C']
['D']
{'1': ['后进先出']}
{'1': ['具有递归特性的数据结构', '递归的数据结构'], '2': ['可递归求解的问题', '可以递归求解的问题']}
{'1': ['分治法']}
{'1': ['递归部分', '递归步骤']}
['B']
['B']
['C']
['B']
['C']
{'1': ['s, ‘WORKER’, t', 's, ‘WORKER’, t', 's, ‘WORKER’, t', 's, ‘WORKER’, t'], '2': [' ‘GOOD BOY’', 'GOOD BOY']}
{'1': ['模式匹配']}
{'1': ['空串']}
{'1': ['堆式顺序存储结构']}
{'1': ['链式存储']}
['D']
['B']
['A']
['B']
['C']
{'1': ['01122']}
{'1': ['01123']}
{'1': ['数据元素是一个字符', '数据元素是单个字符']}
{'1': ['当前位置']}
{'1': ['7 ']}
['D']
['A']
['B']
['D']
['C']
['B']
['B']
['B']
['D']
['C']
{'1': ['非线性']}
{'1': ['1', '一']}
{'1': ['度']}
{'1': ['最大']}
{'1': ['0', '零']}
{'1': ['1']}
{'1': ['383']}
{'1': ['32']}
{'1': ['9']}
{'1': ['11']}
{'1': ['A'], '2': ['J']}
{'1': ['E'], '2': ['H']}
{'1': ['C']}
['true']
['true']
['false']
['true']
['false']
['A']
['B']
['B']
['C']
['D']
['C']
['C']
['A']
['D']
['B']
{'1': ['空']}
{'1': ['n1-1'], '2': ['n2+n3']}
{'1': ['双亲'], '2': ['孩子兄弟']}
['true']
['false']
['true']
['false']
['true']
{'1': ['叶子']}
{'1': ['6'], '2': ['261']}
{'1': ['2n-1']}
{'1': ['前缀', '最优前缀']}
['A']
['B']
['A']
['B']
['D']
{'1': ['最小']}
{'1': ['贪心算法思想', '贪心算法的思想'], '2': ['动态规划思想', '动态规划的思想']}
{'1': ['Dijkstra'], '2': ['Floyd']}
['D']
['C']
['D']
['C']
['A']
['A']
['C']
['A']
['A']
['B']
{'1': ['静态查找表', '动态查找表'], '2': ['动态查找表', '静态查找表']}
{'1': ['平均查找长度']}
{'1': ['主关键字']}
['C']
['D']
['A']
['A']
['D']
['B']
['C']
['true']
['false']
['C']
['A']
['C']
['true']
['true']
['true']
['true']
['false']
['C']
['D']
['A']
{'1': ['查找']}
{'1': ['内部排序']}
{'1': ['空间效率'], '2': ['稳定性']}
{'1': ['插入排序']}
['false']
['true']
['true']
['false']
['true']
['false']
['true']
['true']
['true']
['false']
['true']
['true']
['false']
['true']
['false']
['true']
['false']
['true']
['false']
['true']
['false']
经过抓包分析
其答案在data.problems[0].user.answer下
而且对于填空题它是answers{}
为此写了一个小的处理
让其可以提取到两类答案
对的这是源码
import requests
j=0
for i in range(3845905,3846006):url = f"https://www.xuetangx.com/api/v1/lms/exercise/get_exercise_list/{i}/9357137/"headers = {"Accept": "application/json, text/plain, */*","Accept-Encoding": "gzip, deflate, br, zstd","Accept-Language": "zh","App-Name": "xtzx","Cache-Control": "no-cache","Content-Type": "application/json","Cookie": "_abfpc=73f3154febe39bed2d1a540a8a94f67551d2d361_2.0; cna=0e5d0ea34bdd926182ad8f3ecbef9aec; mode_type=normal; provider=xuetang; django_language=zh; point={%22point_active%22:true%2C%22platform_task_active%22:true%2C%22learn_task_active%22:true}; 59584271video_seconds=146; 77831809video_seconds=3; login_type=WX; csrftoken=BSJSNDMqRjXmygIMUjRE9kVD1dGetAh5; sessionid=n0ghs2l1c5dct15z0nlzxwztq6qzob92; k=59584271; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2259584271%22%2C%22first_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.bing.com%2F%22%7D%2C%22%24device_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%7D; JG_016f5b1907c3bc045f8f48de1_PV=1718967129887|1718968519390","Django-Language": "zh","Pragma": "no-cache","Priority": "u=1, i",# "Referer": "https://www.xuetangx.com/learn/henu08091007584/henu08091007584/19322491/exercise/43306490","Sec-Ch-Ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Microsoft Edge\";v=\"126\"","Sec-Ch-Ua-Mobile": "?0","Sec-Ch-Ua-Platform": "\"Windows\"","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-origin","Terminal-Type": "web","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0","X-Client": "web","X-Csrftoken": "BSJSNDMqRjXmygIMUjRE9kVD1dGetAh5","Xtbz": "xt"}response = requests.get(url, headers=headers)data = response.json()try:anwser_list = data["data"]["problems"]j=j+1print(j)except:continuefor list in anwser_list:try:print(list["user"]["answer"])except:print(list["user"]["answers"])
不过需要注意的是,你要F12自己抓包一下
将Cookie和X-Csrftoken搞到,然后沾到对应的请求头上
不过这还没啥
重点是:
自动填答案脚本
from time import sleep
import requestsdef promble_get(exce_idd):url = f"https://www.xuetangx.com/api/v1/lms/exercise/get_exercise_list/{exce_idd}/9357137/"headers = {"Accept": "application/json, text/plain, */*","Accept-Encoding": "gzip, deflate, br, zstd","Accept-Language": "zh","App-Name": "xtzx","Cache-Control": "no-cache","Content-Type": "application/json",#替换成自己的"Cookie": "_abfpc=73f3154febe39bed2d1a540a8a94f67551d2d361_2.0; cna=0e5d0ea34bdd926182ad8f3ecbef9aec; mode_type=normal; provider=xuetang; django_language=zh; point={%22point_active%22:true%2C%22platform_task_active%22:true%2C%22learn_task_active%22:true}; 77831809video_seconds=3; 59584271video_seconds=151; undefinedvideo_seconds=151; login_type=P; csrftoken=dadHEX0qMOTyNfvQbDNd2zm3Fu1VoVtG; sessionid=9ml5t7q958j7rnd03owedypb5ek7oqb5; k=77831809; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2277831809%22%2C%22first_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.bing.com%2F%22%7D%2C%22%24device_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%7D; JG_016f5b1907c3bc045f8f48de1_PV=1718967129887|1718970073104","Django-Language": "zh","Pragma": "no-cache","Priority": "u=1, i","Referer": "https://www.xuetangx.com/learn/henu08091007584/henu08091007584/19322491/exercise/43306308","Sec-Ch-Ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Microsoft Edge\";v=\"126\"","Sec-Ch-Ua-Mobile": "?0","Sec-Ch-Ua-Platform": "\"Windows\"","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-origin","Terminal-Type": "web","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0","X-Client": "web",#替换成自己的"X-Csrftoken": "dadHEX0qMOTyNfvQbDNd2zm3Fu1VoVtG","Xtbz": "xt"}response = requests.get(url, headers=headers)datad = response.json()anwerlist = datad["data"]["problems"]list = []for ll in anwerlist:list.append(ll["problem_id"])return listexce_id = [3845905, 3845907, 3845910, 3845913, 3845915, 3845917, 3845920, 3845923, 3845925,3845929, 3845931, 3845933, 3845936, 3845939, 3845942, 3845945, 3845948, 3845954,3845957, 3845960, 3845962, 3845964, 3845967, 3845970, 3845971, 3845973, 3845976,3845979, 3845982, 3845984, 3845987, 3845988, 3845990, 3845991,3845992, 3845993,3845995, 3845997,3845998, 3845999, 3846000, 3846002, 3846004, 3846005]leaf_id = [43306297,43306301,43306308,43306312,43306316,43306323,43306328,43306335,43306340,43306346,43306350,43306358,43306363,43306368,43306374,43306380,43306386,43306398,43306404,43306410,43306415,43306421,43306428,43306433,43306438,43306444,43306449,43306456,43306463,43306468,43306472,43306475,43306478,43306480,43306482,43306486,43306490,43306493,43306496,43306499,43306503,43306505,43306509,43306512
]
data = [[1,{1: "对象", 2: "关系"},{1: "非数值计算", 2: "操作"},{1: "线性表"}],[2,["D"],["B"],["B"],["C"],["C"]],[3,{1: "操作"},{1: "数据关系,数据对象上关系的集合"},{1: "性质相同"},{1: "物理结构"},{1: "存储结构, 操作表示"}],[4,['C'],['B'],['D'],['B'],['D']],[5,['true'],['false'],['false'],['false'],['true']],[6,['C'],['B'],['A'],['C'],['D']],[7,['false'],['false'],['false'],['false'],['false']],[8,['C'],['B'],['D'],['A'],['D']],[9,['C'],['B'],['D'],['A'],['A']],[10,{1: "栈"},{1: "链栈, 链式栈"},{1: "先进先出"},{1: "队头", '2': "队尾"}],[11,['B'],['C'],['C'],['C'],['D']],[12,{1: "后进先出"},{1: "具有递归特性的数据结构, 递归的数据结构", 2: "可递归求解的问题, 可以递归求解的问题"},{1: "分治法"},{1: "递归部分, 递归步骤"}],[13,['B'],['B'],['C'],['B'],['C']],[14,{1: "s, ‘WORKER’, t, s, ‘WORKER’, t, s, ‘WORKER’, t, s, ‘WORKER’, t", '2': " ‘GOOD BOY’, GOOD BOY"},{1: "模式匹配"},{1: "空串"},{1: "堆式顺序存储结构"},{1: "链式存储"}],[15,['D'],['B'],['A'],['B'],['C']],[16,{1: "01122"},{1: "01123"},{1: "数据元素是一个字符, 数据元素是单个字符"},{1: "当前位置"},{1: 7 }],[17,['D'],['A'],['B'],['D'],['C']],[18,['B'],['B'],['B'],['D'],['C']],[19,{1: "非线性"},{1: "1, 一"},{1: "度"},{1: "最大"},{1: "0, 零"}],[20,{1: "1"},{1: "383"},{1: "32"},{1: "9"},{1: "11"}],[21,{1: "A", 2: "J"},{1: "E", 2: "H"},{1: "C"}],[22,['true'],['true'],['false'],['true'],['false']],[23,['A'],['B'],['B'],['C'],['D']],[24,['C'],['C'],['A'],['D'],['B']],[25,{1: "空"},{1: "n1-1", 2: "n2+n3"},{1: "双亲", 2: "孩子兄弟"}],[26,['true'],['false'],['true'],['false'],['true']],[27,{1: "叶子"},{1: "6", 2: "261"},{1: "2n-1"},{1: "前缀, 最优前缀"}],[28,['A'],['B'],['A'],['B'],['D']],[29,{1: "最小"},{1: "贪心算法思想, 贪心算法的思想", 2: "动态规划思想, 动态规划的思想"},{1: "Dijkstra", 2: "Floyd"}],[30,['D'],['C'],['D'],['C'],['A']],[31,['A'],['C'],['A'],['A'],['B']],[32,{1: "静态查找表, 动态查找表", 2: "动态查找表, 静态查找表"},{1: "平均查找长度"},{1: "主关键字"}],[33,['C'],['D'],['A']],[34,['A'],['D'],['B']],[35,['C'],['true'],['false']],[36,['C'],['A'],['C'],['true'],['true']],[37,['true'],['true'],['false']],[38,['C'],['D'],['A']],[39,{1: "查找"},{1: "内部排序"},{1: "空间效率", 2: "稳定性"},{1: "插入排序"}],[40,['false'],['true'],['true'],['false'],['true']],[41,['false'],['true'],['true'],['true']],[42,['false'],['true'],['true'],['false']],[43,['true'],['false'],['true']],[44,['false'],['true'],['false'],['true'],['false']]
]
i = -1for item in data:# print(item)url = "https://www.xuetangx.com/api/v1/lms/exercise/problem_apply/"# 设置HTTP头信息headers = {"Accept": "application/json, text/plain, */*","Accept-Encoding": "gzip, deflate, br, zstd","Accept-Language": "zh","App-Name": "xtzx","Cache-Control": "no-cache","Content-Type": "application/json",# 必要的"Cookie": "_abfpc=73f3154febe39bed2d1a540a8a94f67551d2d361_2.0; cna=0e5d0ea34bdd926182ad8f3ecbef9aec; mode_type=normal; provider=xuetang; django_language=zh; point={%22point_active%22:true%2C%22platform_task_active%22:true%2C%22learn_task_active%22:true}; 77831809video_seconds=3; 59584271video_seconds=151; undefinedvideo_seconds=151; login_type=P; csrftoken=dadHEX0qMOTyNfvQbDNd2zm3Fu1VoVtG; sessionid=9ml5t7q958j7rnd03owedypb5ek7oqb5; k=77831809; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2277831809%22%2C%22first_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fwww.bing.com%2F%22%7D%2C%22%24device_id%22%3A%2219025a34692932-03fb6f51d259324-4c657b58-1638720-19025a346931fb3%22%7D; JG_016f5b1907c3bc045f8f48de1_PV=1718967129887|1718970073104","Django-Language": "zh","Origin": "https://www.xuetangx.com","Pragma": "no-cache","Referer": "https://www.xuetangx.com/learn/henu08091007584/henu08091007584/19322491/exercise/43306496","Sec-Ch-Ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Microsoft Edge\";v=\"126\"","Sec-Ch-Ua-Mobile": "?0","Sec-Ch-Ua-Platform": "\"Windows\"","Sec-Fetch-Dest": "empty","Sec-Fetch-Mode": "cors","Sec-Fetch-Site": "same-origin","Terminal-Type": "web","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0","X-Client": "web",# 必要的"X-Csrftoken": "dadHEX0qMOTyNfvQbDNd2zm3Fu1VoVtG","Xtbz": "xt"}i += 1j = 0problem_id_list = promble_get(exce_id[i])for item_true in item[1:]:print(item_true)print(problem_id_list[j])data = {"leaf_id": leaf_id[i],"classroom_id": 19322491,"exercise_id": exce_id[i],"problem_id": problem_id_list[j],"sign": "henu08091007584","answers": str(item_true),"answer": str(item_true),}j+=1sleep(5)response = requests.post(url, headers=headers, json=data)print(response.json())
同理也是那两个换成自己的
然后这个可能有点不一样
很简单自己交个题打开网络抓包,对应的改改进行了
已经经过博主测试,代码可行,可以自动填答案哈哈
解放你的双手吧老弟