https://github.com/Trinkle23897/learn2018-autodown
清华大学新版网络学堂课程自动下载脚本 / A python script to clone all files from learn.tsinghua.edu.cn
https://github.com/Trinkle23897/learn2018-autodown
beautifulsoup4 python3 requests tqdm
Last synced: 1 day ago
JSON representation
清华大学新版网络学堂课程自动下载脚本 / A python script to clone all files from learn.tsinghua.edu.cn
- Host: GitHub
- URL: https://github.com/Trinkle23897/learn2018-autodown
- Owner: Trinkle23897
- License: mit
- Created: 2018-11-28T07:53:49.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-30T14:11:44.000Z (7 months ago)
- Last Synced: 2024-10-28T21:07:38.525Z (6 months ago)
- Topics: beautifulsoup4, python3, requests, tqdm
- Language: Python
- Homepage: https://learn.tsinghua.edu.cn
- Size: 204 KB
- Stars: 305
- Watchers: 7
- Forks: 70
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - Trinkle23897/learn2018-autodown - 清华大学新版网络学堂课程自动下载脚本 / A python script to clone all files from learn.tsinghua.edu.cn (Python)
README
# 清华大学新版网络学堂课程自动下载脚本
## Features
0. 跨平台支持:Windows/Mac/Linux 支持双击运行([详情点击](https://github.com/Trinkle23897/learn2018-autodown/releases))
1. 下载所有课程公告
2. 下载所有课件
3. 下载所有作业文件及其批阅情况
4. 下载所有课程讨论
5. 下载课程信息
6. 增量更新
7. 可选下载课程
8. 随时按 Ctrl+C 跳过某个文件的下载
9. 下载助教课程
10. 可使用 cookie 登录
11. 多刷刷有利于后台成绩提高,比如以下第三条记录是我的:
## Dependency
python>=3.5, bs4, tqdm, requests
```bash
pip3 install -r requirements.txt --user -U
```## Usage
### CLI 下载
```bash
python learn-stdio.py
```### 原始脚本下载选项
下载当前学期课程(默认)
```bash
python learn_async.py
```下载所有学期课程
```bash
python learn_async.py --all
```下载指定学期课程
```bash
python learn_async.py --semester 2018-2019-1 2018-2019-3
```下载指定课程
```bash
python learn_async.py --course 计算机网络安全技术 计算机组成原理
```跳过某几个课程下载
```bash
python learn_async.py --ignore 数据结构 "实验室科研探究(1)"
```移除所有文件夹下完全相同的文件
```bash
python learn_async.py --clear --all
```指定下载路径
```bash
python learn_async.py --dist your_download_path
```启用多进程下载
```bash
python learn_async.py --multi
```启用多进程下载,并指定进程数(如果不指定则默认使用所有 CPU 核心数)
```bash
python learn_async.py --multi --processes 4
```以上参数均可组合使用,比如我想并发的更新大二的课程到`./download`目录,但是不想下载数据结构、实验室科研探究、中国近现代史纲要(课程文件太大了):
```bash
python learn_async.py --semester 2017-2018-1 2017-2018-2 2017-2018-3 --ignore 数据结构 "实验室科研探究(2)" 中国近现代史纲要 --multi --dist ./download
```**如果想跳过正在下载的某个文件,按 Ctrl+C 即可。**
### 登录选项(learn-stdio 中禁用)
懒得每次输入 info 账号密码?创建文件`.pass`,写入 info 账号和密码之后可以自动登录,或者是:
```bash
python learn_async.py --_pass your_info_file
```其中文件格式为
```bash
info账号
info密码
```使用 Cookie 登录而不是输入 info 密码:
```bash
python learn_async.py --cookie your_cookie_filename
```其中 cookie 文件格式可参考 `example_cookie.txt`。
## Common Issues
- 卡在 login:网络原因,看看 pulse-secure 关了没,重跑试试看
- `500 : Internal Server Error`:请拉取最新版的脚本。网络学堂自 2020/2/22 开启强制 https。
- `info_xxx.csv`在 Mac 下打开是乱码:别用 office,用 mac 自带的软件吧 :)