Skip to content
DC_DC edited this page Apr 23, 2024 · 6 revisions

GetClassSchedule-PythonScript

系统介绍

  • 采用python开发,使用selenium、email等第三方库实现具有自动提醒课程功能

背景简介

  • 由于课表会被教师更新,学生的课表不能及时同步,对同学造成困扰

用户需求

  • 需要Python自动化程序每日定点提醒课程安排,包括上课时间、上课地点、任课教师等信息

实现逻辑

  1. 使用selenium自动化操作浏览器,输入用户名+密码,并查看课表
  2. 到达课表页面获取本页html源代码并保存
  3. 本地通过xpath对获取到的html进行解析,获取课程表内容
  4. 通过简单的算法设计,实现每日提醒,和课前提醒,信息通过邮箱发送

功能设计

  • 功能模块全部放在package这个软件包中
  • 所有产生的数据文件,如html、excel等都存放至data目录下
  1. get_html模块
    • 使用get_html函数实现网页源代码的获取
  2. parse_table模块
    • 使用parse_table函数实现对html文件的解析,获取关键内容
  3. sava_data模块
    • save_to_excel函数用于将课程表内容保存到excel中
  4. email_remind模块
    • send_email函数通过简单的算法设计,根据每节课的上课时间实现发送邮件功能
    • send_regularly函数实现定时执行邮件推送

设计难点

  1. 获取网页源码

    已经解决,健壮性+通用性未测试、未考虑

  2. 解析html文件获取关键数据

    已经解决,健壮性+通用性未测试、未考虑

  3. 获取当前时间并判断是否有课

    暂未解决,难点在于日期范围难以定义,没有想好使用哪种数据结构

Clone this wiki locally