Blackboard课程资料下载工具(交互式版本)
这个Jupyter Notebook项目提供了一个交互式的工具,用于从上海科技大学Blackboard系统下载课程资料。该工具支持自动化登录、验证码处理、课程资料批量下载等功能。
主要功能
- 自动化登录处理:支持自动填写登录表单并处理验证码
- 智能验证码识别:使用ddddocr实现自动验证码识别
- 课程资料管理:支持查看和下载所有可用课程的资料
- 批量下载支持:可以选择下载单个文件或批量下载所有文件
- 会话维护:自动维护登录会话,避免超时问题
- 文件命名优化:自动处理重复文件名和非法字符
- 下载进度显示:实时显示文件下载进度
- 异常处理机制:完善的错误处理和重试机制
核心组件
-
配置管理
- 通过config.yaml配置登录信息
- 可自定义下载选项和偏好设置
- 支持保存用户偏好到user_preferences.yaml
-
浏览器自动化
- 使用Selenium WebDriver实现自动化操作
- 优化的Chrome浏览器配置
- 支持无痕模式和自动化检测绕过
-
文件处理系统
- 支持多种文件类型下载
- 自动创建下载目录结构
- 文件重名处理机制
-
调试功能
- 详细的日志记录
- 页面源码和截图保存
- 会话状态监控
使用流程
-
初始化环境
- 导入必要的Python包
- 设置浏览器驱动
- 加载配置文件
-
用户登录
- 自动访问登录页面
- 填写登录表单
- 处理验证码(如需)
- 提交登录请求
-
课程管理
- 获取可用课程列表
- 选择目标课程
- 获取课程资料列表
-
资料下载
- 单文件/批量下载选择
- 自动处理下载过程
- 下载进度实时显示
依赖项
- Python 3.10
- Selenium
- requests
- BeautifulSoup4
- ddddocr
- pycryptodome
- PyYAML