3.5 KiB
3.5 KiB
快速更新指南 - 修复会话过期问题
🎯 本次更新解决的问题
症状: 程序运行几小时后出现:
[WARNING] 未能提取到成绩信息,返回原始文本
[INFO] 成绩无变化(共 0 门课程)
原因: 登录会话过期,需要重新登录
解决: ✅ 自动检测并重新登录
📦 方式1:快速更新(推荐)
在本地打包
cd /mnt/e/50425/Documents/Github/GPA_Monitoring
chmod +x 打包.sh
./打包.sh
上传到服务器
scp gpa_monitor.tar.gz 用户名@服务器IP:~/
在服务器上更新
# 停止服务
systemctl stop grade-monitor
# 备份
cd ~/grade_monitor
cp monitor.py monitor.py.backup.$(date +%Y%m%d)
# 解压更新
tar -xzf ~/gpa_monitor.tar.gz -C ~/grade_monitor
# 赋予权限
chmod +x diagnose.sh
# 重启服务
systemctl restart grade-monitor
# 查看日志(确认自动重新登录功能)
tail -f monitor.log
🔧 方式2:仅更新 monitor.py
如果只想更新主程序文件:
在本地
# WSL中
cd /mnt/e/50425/Documents/Github/GPA_Monitoring
scp monitor.py 用户名@服务器IP:~/grade_monitor/
在服务器上
systemctl stop grade-monitor
systemctl start grade-monitor
tail -f ~/grade_monitor/monitor.log
✅ 验证更新成功
查看日志,应该能看到:
正常运行
[INFO] 开始新一轮检查
[INFO] 获取成绩页面...
[DEBUG] 找到成绩表格
[INFO] 成功提取成绩信息,共 17 行
[INFO] 共解析到 15 门课程
[INFO] 成绩无变化(共 15 门课程)
会话过期时自动处理
[WARNING] 检测到会话过期,尝试重新登录...
[INFO] 开始登录统一身份认证...
[INFO] 登录成功!成功访问成绩页面
[INFO] 重新登录成功,继续监控
🔍 故障诊断
如果更新后仍有问题:
cd ~/grade_monitor
# 运行诊断工具
./diagnose.sh
# 或手动测试
python3 monitor.py --test --debug
# 查看生成的调试文件
ls -lh debug_page.html
cat .last_grade_content.txt
📋 更新内容详细列表
-
会话过期自动重新登录 (monitor.py 第697-718行)
- 检测
LOGIN_REQUIRED状态 - 自动调用
login()重新登录 - 记录详细日志
- 检测
-
改进成绩提取 (monitor.py 第286-370行)
- 检测登录页面
- 支持多种表格选择器
- 自动保存 debug_page.html
- 添加详细调试日志
-
改进课程解析 (monitor.py 第375-405行)
- 检测登录失效
- 识别未解析的HTML
- 统计课程数量
-
新增调试模式
python3 monitor.py --debug- 显示详细运行信息
-
新增诊断工具
diagnose.sh- 自动检测并给出建议故障排查指南.md- 详细排查步骤
💡 最佳实践
-
定期检查日志(每天1-2次即可)
tail -n 50 ~/grade_monitor/monitor.log -
不要频繁重启服务
- 新版本会自动处理会话过期
- 只在真正出问题时才重启
-
保留备份
# 每次更新前都会自动备份 ls -lh ~/grade_monitor/monitor.py.backup.* -
合理设置检查间隔
- 建议 120-300 秒
- 避免触发学校系统限流
🆘 需要帮助?
- 先运行诊断工具:
./diagnose.sh - 查看故障排查指南:
cat 故障排查指南.md - 查看详细修复说明:
cat 修复说明_2026-01-21.md
更新日期: 2026-01-21
版本: v2.0 - 自动会话恢复版