UCAS自动同步课件脚本

Cool Idea

在UCAS进入研一的生活接近两个礼拜,发现老师的课件基本上都上传到课程网站,然后是一节一节给的。这样,每次老师更新课件的时候,我们都得开一下网页,然后看看是不是更新了?(虽然有邮箱提醒,但是这种邮件我都直接忽略的),于是萌生了写个脚本来自动下载的想法。

创作过程及难点

首先是进行抓包分析。登录SEP很简单,直接发送了用户密码还有sb=sb参数。

进入SEP后,该系统采用一个特殊的key传递到另个一个系统(比如选课,课程网站等),捕获这个key之后,就可以进入课程网站啦。

然后分别分析每门课的课件的URL。需要注意的是:

  • 有的老师是给出HTML链接,需要进行重定向,而且需要解决给的链接挂掉的情况。
  • 文件夹需要递归下载。(不能单纯的用’.’来判断,有的老师就是没有扩展名的,不知道上传的是什么鬼)
  • 在下载模块中,使用的是多线程,在多线程中,需要注意创建文件夹路径不存在时进行创建需要加锁。
  • 对于已经存在的文件,这不要进行下载了
  • 验证码的识别(2017.2更新,多了验证码)
  • 进入第二学期后,只查看第二学期的课程(学期的概念)

此外,还用PyInstaller打包成了exe文件。

 

Code

代码如下:完整代码以及后续更新请见github: UCAS 课件自动下载

 

本博客若无特殊说明则由 hrwhisper 原创发布
转载请点名出处:细语呢喃 > UCAS自动同步课件脚本
本文地址:https://www.hrwhisper.me/ucas_course_ppt_auto_download/

您的支持将鼓励我继续创作!

技术改变生活 , , . permalink.

9 thoughts on “UCAS自动同步课件脚本

  1. 不喜欢 PEP8 里面 protedted 和 private 的说法。。。double underscore is annoying。。。还是单下划线最好haha。。果然没人用 threading~~

Leave a Reply

Your email address will not be published. Required fields are marked *