长江雨课堂考试半自动答题python脚本
前言
老师居然用这什么长江雨课堂,闲的没事就研究一下能不能写个脚本替我把答案跑出来,于是乎就有了这篇文章
一、试卷提取
直接开始,F12审查元素,发现所有的题目和答案全是图片形式
继续观察发现slide_3_8是第2题,slide_4_8是第3题,以此类推,于是直接写个循环拿到所有题目
import requests import os if not os.path.exists(./picture): # 判断当前目录下是否有picture这个目录,没有就建一个,有了就算了 os.makedirs(./picture) # 请求头,其实可以不带的 head = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36", } for i in range(2,37): # 循环拿下所有题目,并保存 url = fhttps://changjiang-public-qn.yuketang.cn/public/32233404/slide_{ i}_8_20230331081800.png name = f"第{ i-1}题" + ".jpg" img_data = requests.get(url, headers=head).content img_ptah = E:\pychaem\python\00一些有趣的东西\picture\ + name with open(img_ptah, wb) as f: f.write(img_data) print(f"第{ i-1}题OK") # 全部保存之后用第三方图片识别转成txt格式,并放到当前目录 # 在线图片转文字,免费且方便,支持一键合并,挺好用的 https://web.baimiaoapp.com/
二、自动答题
把刚才的刚才拿到的题目放到当前文件夹下,注意哦:是转换过后的txt格式的那个
正题开始
import requests import time head = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36", "Content-Type": "application/json; charset=utf-8", } with open(E:\pychaem\python\00一些有趣的东西\第2题.txt, r, encoding=utf-8) as f: topics = f.readlines() # 读取题目,这里是所有题目放一个列表里 try: for topic in topics: # 逐行读取 print(topic, end=) # 把题目打印到屏幕上 url = f"https://study.jszkk.com/api/open/seek?q={ topic}" # 搜题 response = requests.get(url, headers=head) # 请求 if response.json()[data] == []: # 有些题目可能会找不到答案 print("找不到答案哎!!!ε=(´ο`*)))") else: # print(response.json()[data][content]) print(response.json()[data][answer]) # 打印答案 time.sleep(0.3) # 防止请求太快被封ip,习惯性延迟 except Exception as e: # 输出异常 print("Error:",e )
效果还好吧,最后还是要一个个手动打钩
总结:
代码有些许潦草,中间有好多可以改进的地方,懒得搞了,主要是想试下自己的动手能力,目的已达到O(∩_∩)O哈哈~