This commit is contained in:
ChuXun
2026-01-29 04:44:49 +08:00
parent d1dc08a16d
commit 2e0e4ea8c6
11 changed files with 0 additions and 490 deletions

179
docs/快速更新指南.md Normal file
View File

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