You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让基于Pyautogui的选课自动化代码运行更快且更稳定?

Pyautogui选课脚本提速&稳定性优化方案
  • 替换不可靠的硬等待和窗口切换逻辑
    原代码的alt+tab完全依赖当前打开窗口的顺序,非常容易切错窗口浪费时间,直接用pygetwindow定位选课页面的Chrome窗口直接激活,比硬等1秒快太多。把固定时长的time.sleep换成动态最大等待,只有没等到目标状态才等待,比固定等待节省至少60%的空等时间。
  • 降低pyautogui默认操作间隔,优化输入速度
    pyautogui默认每个操作后会等待0.1秒,你可以把pyautogui.PAUSE调到0.03~0.05左右,既不会太快让浏览器跟不上响应,又比默认速度快一倍以上。输入课程名的时候加interval=0参数,一次性完成输入没有间隔,比逐字输入效率高很多。
  • 保留安全开关避免异常失控
    不要把pyautogui.FAILSAFE设为False,这个功能是你把鼠标挪到屏幕左上角就能强制终止脚本,出问题能及时止损,完全不影响运行速度。还可以加全局快捷键监听,按ESC直接终止脚本,避免操作跑偏。
  • 关键操作加轻量重试逻辑
    比如搜索课程后如果没定位到对应内容,自动重试2次,避免因为浏览器偶尔卡顿导致操作失败,不需要加额外等待时间。
  • 可选终极提速方案(比模拟键鼠快10倍以上)
    直接抓选课系统的提交请求接口,用requests库发请求抢课,跳过浏览器渲染、键鼠模拟的所有冗余步骤,只要名额放出来瞬间就能提交请求,比所有模拟键鼠的方案都快得多,也不会出现浏览器跟不上的问题。

优化后代码示例

import pyautogui
import time
import pygetwindow as gw

# 保留FAILSAFE,留着紧急终止用
pyautogui.FAILSAFE = True
# 调低默认操作间隔,可根据自己浏览器响应速度调整,最低可到0.01
pyautogui.PAUSE = 0.03

# 直接定位Chrome选课窗口,替换原来的alt+tab硬切
# 把引号内的内容改成你选课页面的标题关键词,比如"本科选课系统"
for win in gw.getWindowsWithTitle("选课系统"):
    if win.isMinimized:
        win.restore()
    win.activate()
    time.sleep(0.1) # 仅保留窗口激活必要的等待时间
    break

# 搜索定位课程
pyautogui.hotkey('ctrl', 'f')
# 输入课程名无间隔
pyautogui.write('PHY182.1', interval=0)
pyautogui.press('enter')
pyautogui.press('esc')
pyautogui.hotkey('shift', 'tab')
pyautogui.press('space')

内容的提问来源于stack exchange,提问作者Mursalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 19:27:01