# DNUI_homework **Repository Path**: yr_binary/DNUI_homework ## Basic Information - **Project Name**: DNUI_homework - **Description**: 一键查询作业列表,该模块只实现后台接口逻辑部分 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-02-18 - **Last Updated**: 2025-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DNUI_homework #### 介绍 一键查询作业列表,该模块只实现后台接口逻辑部分。通过使用 `Selenium` 自动化技术,该模块能够自动登录到指定的作业平台,获取未完成作业的信息,并以 JSON 格式返回。 #### 软件架构 天天每个网站看有没有作业。但还是有作业会被落下。真是烦。于是我决定完成这个项目,使用 Python 和 `Flask` 创建了一个简单的后台接口,可以根据用户名和密码查询指定平台的未完成作业。 该模块的主要功能是: - 自动登录指定的作业平台。 - 获取未完成作业的详细信息。 - 以 JSON 格式返回作业信息,便于其他系统调用。 #### 安装教程 1. 克隆项目: ```bash git clone https://gitee.com/yr_binary/DNUI_homework.git ``` 2. 进入项目目录: ```bash cd DNUI_homework ``` 3. 创建并激活虚拟环境: ```bash python -m venv .venv # Windows: .\.venv\Scripts\activate # macOS/Linux: source .venv/bin/activate ``` 4. 安装项目依赖: ```bash pip install -r requirements.txt ``` 5. 下载并配置 `chromedriver`,确保与你的 Chrome 浏览器版本匹配。并设置 `chrome_driver_path` 和 `chrome_browser_path`。 #### 使用说明 1. 运行 Flask 后台服务: ```bash python app.py ``` 2. 启动服务后,可以通过 `POST` 请求访问 API,传入 `username` 和 `password` 来获取作业列表。请求格式如下: - **URL**: `http://127.0.0.1:5000/get_homework` - **请求方式**: `POST` - **请求体** (JSON 格式): ```json { "username": "15*******90", "password": "*******" } ``` - **响应格式** (JSON 格式): ```json [ { "作业ID": 1, "作业号": "3188838", "作业标题": "23级B层次B4U1-写作2稿", "类型": "作文", "出题人": "王宁", "截止时间": "2025-03-03 12:00", "剩余时间": "12 days, 14:32:57" }, { "作业ID": 2, "作业号": "3188835", "作业标题": "23级B层次B4U1-写作1稿", "类型": "作文", "出题人": "王宁", "截止时间": "2025-02-26 23:59", "剩余时间": "8 days, 2:31:57" } ] #### 项目结构 ``` DNUI_homework/ │ ├── app.py # 主程序,包含 Flask API 路由和 Selenium 自动化逻辑 ├── requirements.txt # 项目依赖列表 ├── README.md # 项目说明文档 └── .venv/ # 虚拟环境 ``` #### 依赖 - `Flask`: 用于创建 Web API。 - `Selenium`: 用于自动化浏览器操作,抓取未完成作业的数据。 - `chromedriver`: 用于与 Chrome 浏览器通信。 #### 常见问题 1. **如何选择正确版本的 `chromedriver`?** 确保你的 `chromedriver` 版本与当前安装的 Chrome 浏览器版本匹配。你可以在 [ChromeDriver 官网](https://sites.google.com/a/chromium.org/chromedriver/downloads) 下载相应版本。 2. **如何修改作业平台?** 目前只支持 `pigai.org` 平台。如果你希望修改为其他平台,只需要修改登录方法 (`login_to_pigai`) 和作业抓取方法 (`parse_homework_data`) 中的 URL 和元素定位。 #### 许可证 MIT License