Files
GPA_Monitoring/快速更新指南.md
ChuXun d1dc08a16d 1
2026-01-29 03:39:01 +08:00

180 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 快速更新指南 - 修复会话过期问题
## 🎯 本次更新解决的问题
**症状:** 程序运行几小时后出现:
```
[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 - 自动会话恢复版