Python 自动评分程序 - 内蒙古开放大学
Python 自动评分程序 - 内蒙古开放大学
本程序使用 Python 编写,利用 Selenium 库自动完成内蒙古开放大学平台的在线评分。程序提供了简单的图形界面,可设定评分次数,并实时显示评分进度。
程序功能
- 自动登录内蒙古开放大学平台
- 自动评分,随机生成 94-99 分之间的分数
- 设定评分次数
- 显示评分进度
- 提供开始/停止按钮
代码示例
import os
import time
import random
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import tkinter as tk
class App:
def __init__(self, master):
self.master = master
master.title("自动评分程序")
self.label = tk.Label(master, text="请输入评分次数:")
self.label.pack()
self.entry = tk.Entry(master)
self.entry.pack()
self.start_button = tk.Button(master, text="开始运行", command=self.start)
self.start_button.pack()
self.stop_button = tk.Button(master, text="停止运行", command=self.stop, state=tk.DISABLED)
self.stop_button.pack()
self.progress_label = tk.Label(master, text="")
self.progress_label.pack()
self.browser = None
self.is_running = False
self.total_scores = 0
self.current_score = 0
def start(self):
if self.is_running:
return
self.total_scores = int(self.entry.get())
if self.total_scores <= 0:
return
if not self.check_browser():
os.system(r'start chrome --remote-debugging-port=9527 --user-data-dir="D:\评阅用"')
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
self.browser = webdriver.Chrome(options=options)
self.is_running = True
self.start_button.config(state=tk.DISABLED)
self.stop_button.config(state=tk.NORMAL)
self.progress_label.config(text="正在评分:0/%d" % self.total_scores)
while True:
for handle in self.browser.window_handles:
self.browser.switch_to.window(handle)
if '内蒙古开放大学' in self.browser.title:
print('用户登录成功!')
break
else:
time.sleep(1)
continue
break
while self.is_running and self.current_score < self.total_scores:
try:
score_box = self.browser.find_element(By.CLASS_NAME, 'score-box')
score_input = score_box.find_element(By.TAG_NAME, 'input')
score_input.clear()
score_input.send_keys(str(random.randint(94, 99)))
time.sleep(1)
submit_button = self.browser.find_element(By.CLASS_NAME, 'nav-text')
submit_button.click()
time.sleep(2)
except:
continue
else:
if '已到最后' in self.browser.page_source:
print('已到最后,暂停程序')
break
self.current_score += 1
self.progress_label.config(text="正在评分:%d/%d" % (self.current_score, self.total_scores))
time.sleep(1)
self.is_running = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
def stop(self):
self.is_running = False
self.start_button.config(state=tk.NORMAL)
self.stop_button.config(state=tk.DISABLED)
def check_browser(self):
#检查是否已经打开了浏览器
try:
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:9527")
browser = webdriver.Chrome(options=options)
browser.execute_script("return true")
return True
except:
return False
if __name__ == '__main__':
root = tk.Tk()
app = App(root)
root.mainloop()
使用方法
- 安装 Python 和 Selenium 库
pip install selenium
-
下载 ChromeDriver 浏览器驱动,并将其添加到系统环境变量 PATH 中
-
运行程序
-
在程序界面中输入评分次数,并点击 "开始运行" 按钮
注意
- 程序需要在浏览器开启调试模式的情况下运行,具体方法请参考 ChromeDriver 文档
- 程序仅供学习参考,请勿用于任何违法或不道德的行为
- 程序代码可能需要根据内蒙古开放大学平台的具体情况进行调整
联系方式
如果您在使用程序过程中遇到任何问题,欢迎联系我。
免责声明
本程序仅供参考,使用本程序带来的任何后果由用户自行承担。作者不对本程序的使用造成任何损失负责。
原文地址: https://www.cveoy.top/t/topic/fYyt 著作权归作者所有。请勿转载和采集!