上科大blackboard简易爬虫

April 02, 2025

Blackboard课程资料下载工具(交互式版本)

这个Jupyter Notebook项目提供了一个交互式的工具,用于从上海科技大学Blackboard系统下载课程资料。该工具支持自动化登录、验证码处理、课程资料批量下载等功能。

github地址

主要功能

  • 自动化登录处理:支持自动填写登录表单并处理验证码
  • 智能验证码识别:使用ddddocr实现自动验证码识别
  • 课程资料管理:支持查看和下载所有可用课程的资料
  • 批量下载支持:可以选择下载单个文件或批量下载所有文件
  • 会话维护:自动维护登录会话,避免超时问题
  • 文件命名优化:自动处理重复文件名和非法字符
  • 下载进度显示:实时显示文件下载进度
  • 异常处理机制:完善的错误处理和重试机制

核心组件

  1. 配置管理

    • 通过config.yaml配置登录信息
    • 可自定义下载选项和偏好设置
    • 支持保存用户偏好到user_preferences.yaml
  2. 浏览器自动化

    • 使用Selenium WebDriver实现自动化操作
    • 优化的Chrome浏览器配置
    • 支持无痕模式和自动化检测绕过
  3. 文件处理系统

    • 支持多种文件类型下载
    • 自动创建下载目录结构
    • 文件重名处理机制
  4. 调试功能

    • 详细的日志记录
    • 页面源码和截图保存
    • 会话状态监控

使用流程

  1. 初始化环境

    • 导入必要的Python包
    • 设置浏览器驱动
    • 加载配置文件
  2. 用户登录

    • 自动访问登录页面
    • 填写登录表单
    • 处理验证码(如需)
    • 提交登录请求
  3. 课程管理

    • 获取可用课程列表
    • 选择目标课程
    • 获取课程资料列表
  4. 资料下载

    • 单文件/批量下载选择
    • 自动处理下载过程
    • 下载进度实时显示

依赖项

  • Python 3.10
  • Selenium
  • requests
  • BeautifulSoup4
  • ddddocr
  • pycryptodome
  • PyYAML

Profile picture

Written by Prosumer , an undergraduate student at ShanghaiTech.
Welcome to my GitHub:)