diff --git a/README.md b/README.md index cba299b..b4086a6 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,16 @@ # FreePEP 📚 人教社中小学电子教材批量下载器 + [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) **FreePEP** 是一款专为[人民教育出版社中小学电子教材平台](https://jc.pep.com.cn/)开发的自动化教材解析、批量抓取与高清 PDF 合成工具。 提供**WebUI 界面**与**交互式命令行**,内置全量 780+ 本教材目录(数据截止到2026年08月31日)自动解密引擎与阿里云 WAF 滑块验证码自动破解机制,支持一键下载指定学段、学科、年级的全套教材并自动生成高清 PDF 文件。 +**更新内容:** + +2026.09.04 FreePEP v1.1 命令行加入了批量下载功能,详情见**启动办法三** + + --- ## ✨ 核心特性 @@ -20,18 +26,26 @@ ## 📸 界面预览 ### WebUI 网页端 + ![](https://img.wemd.app/1788139668274_4n5d28.png) --- + ### CLI 网页端 + ![](https://img.wemd.app/1788139734008_2tmuak.png) # 🚀 使用方式 + ## 🖥️ 方式一:(推荐,适合小白) + 直接下载发行包,解压缩后运行FreePEP.exe,在弹出的Web页面里面自行操作下载。 + ## 方式二:从源码启动 + ### 克隆仓库与安装依赖 + ```bash # 克隆仓库 git clone https://github.com/siknet/FreePEP.git @@ -43,24 +57,32 @@ pip install -r requirements.txt # 安装 Playwright 所需的 Chromium 浏览器内核 playwright install chromium ``` + ### 启动办法一:Webui + 在终端中执行以下命令,系统将自动启动本地服务并在默认浏览器中打开管理页面: + ```bash python webui.py ``` -* **访问地址**:`http://127.0.0.1:8000` -* **默认下载目录**:项目根目录下的 `./downloads` 文件夹(可在 Web 界面点击「📁 打开保存目录」直达)。 + +- **访问地址**:`http://127.0.0.1:8000` +- **默认下载目录**:项目根目录下的 `./downloads` 文件夹(可在 Web 界面点击「📁 打开保存目录」直达)。 --- ### 启动办法二:使用 CLI 命令行 + #### 1. 交互式菜单模式 + 直接运行 `cli.py`,根据控制台提示逐步选择学段、学科与年级: + ```bash python cli.py ``` #### 2. 参数直达模式(适合自动化与脚本调用) + 通过命令行参数直接指定条件过滤并自动开始下载: ```bash @@ -84,6 +106,7 @@ python cli.py --xd "小学(六三学制)" --xk "语文" --nj "一年级" -o ``` **参数说明**: + | 参数 | 说明 | 示例 | | :--- | :--- | :--- | | `--xd` | 指定学段 | `小学(六三学制)`、`初中(六三学制)`、`小学(五四学制)`、`初中(五·四学制)`、`高中`、`培智学校`、`聋校`、`盲校(盲文版)`、`盲校(低视力版)` | @@ -95,6 +118,38 @@ python cli.py --xd "小学(六三学制)" --xk "语文" --nj "一年级" -o | `--output`, `-o` | 指定 PDF 保存目录 | 默认: `./downloads` | | `--yes`, `-y` | 跳过确认提示直接开始下载 | 开启免交互 | +### 启动办法三:按「学段 ➔ 年级」层级批量多线程下载 (download_all.py) + +如果您希望将教材按照 **`学段/年级/`** 两层规范文件夹分类归档下载,直接运行专属的高速批量多线程下载脚本: + +```bash +# 1. 一键下载全网全量教材(默认 3 线程并发,按「学段/年级」两层子目录自动归档) +python download_all.py + +# 2. 启用多线程并发加速(例如 10 线程并行高速下载) +python download_all.py -w 10 + +# 3. 下载多个指定学段(支持逗号分隔,如:义务教育六三学制、五四学制与高中)并自定义保存路径 +python download_all.py --xd "义务教育(六三学制),义务教育(五四学制),高中" -w 10 -o "D:/人教社教材" + +# 4. 仅下载单个学段(如高中全部教材) +python download_all.py --xd "高中" + +# 5. 仅下载某个指定年级教材 +python download_all.py --nj "一年级" +``` + +**功能特性**: + +- 🚀 **多线程并发提速**:默认 **3 线程**并发同时下载,支持通过 `-w / --workers` 自定义并发线程数(如 5~10 线程),下载效率大幅提升。 +- 🎯 **支持多学段组合**:`--xd` 支持传入多个学段(逗号分隔),精准下载普通义务教育或高中学段,自动跳过特教教材。 +- 🌲 **两层层级目录**:自动分类保存为 `downloads/<学段>/<年级>/<教材名>.pdf`,告别成百上千文件堆在单目录。 +- ⚡ **智能断点续传**:已完整下载的教材**自动秒跳过**,中途随时中断无缝继续,绝不重复下载。 +- 🧹 **切片自动清理**:每本教材合成 PDF 后自动清理临时图片分片,极大保护硬盘空间。 +- 💬 **清爽紧凑输出**:不打印繁琐单页过程,仅在教材下载合并完成或跳过时输出进度与提示。 + +--- + ## 📦 一键打包为 Windows 独立 EXE 发行版 如果您想将本项目打包成 **脱离 Python 环境** 的独立绿色软件包发布给普通用户,只需执行工作区自带的一键打包脚本: @@ -104,6 +159,7 @@ python build_exe.py ``` ### 打包脚本会自动完成以下操作: + 1. 自动检查并安装 `PyInstaller` 编译工具。 2. 将 WebUI 及所有 Python 依赖打包为独立可执行文件 `FreePEP.exe`。 3. **自动提取并内嵌绿色便携版 Chromium 浏览器内核**至 `browsers/` 目录。 @@ -120,6 +176,7 @@ FreePEP/ ├── pep_core.py # 核心底层库(AES 解密、Playwright 爬取、PDF 合成) ├── webui.py # FastAPI WebUI 服务器与一体化前端界面 ├── cli.py # 交互式与参数化 CLI 终端下载器 +├── download_all.py # 按「学段/年级」层级全量下载脚本(支持断点续传与缓存清理) ├── build_exe.py # 一键打包发布 Windows EXE 独立便携包脚本 ├── pep_crawler.py # 命令行测试与示例下载脚本 ├── pep_catalog.json # 全量教材元数据本地缓存(自动生成)