FreePEP README

The project's README from github.com/siknet/FreePEP. As one markdown file: README.md.

FreePEP 📚 人教社中小学电子教材批量下载器

License: MIT

FreePEP 是一款专为人民教育出版社中小学电子教材平台开发的自动化教材解析、批量抓取与高清 PDF 合成工具。

提供WebUI 界面与交互式命令行,内置全量 780+ 本教材目录(数据截止到2026年08月31日)自动解密引擎与阿里云 WAF 滑块验证码自动破解机制,支持一键下载指定学段、学科、年级的全套教材并自动生成高清 PDF 文件。

课本打包下载区 更新时间:2026年9月10日

文字版 课本下载列表 图片版课本下载列表


✨ 核心特性


📸 界面预览

WebUI 网页端


CLI 网页端

🚀 使用方式

🖥️ 方式一:(推荐,适合小白)

直接下载发行包,解压缩后运行FreePEP.exe,在弹出的Web页面里面自行操作下载。

方式二:从源码启动

克隆仓库与安装依赖

# 克隆仓库
git clone https://github.com/siknet/FreePEP.git
cd FreePEP

# 安装 Python 依赖
pip install -r requirements.txt

# 安装 Playwright 所需的 Chromium 浏览器内核
playwright install chromium

启动办法一:Webui

在终端中执行以下命令,系统将自动启动本地服务并在默认浏览器中打开管理页面:

python webui.py

启动办法二:使用 CLI 命令行

1. 交互式菜单模式

直接运行 cli.py,根据控制台提示逐步选择学段、学科与年级:

python cli.py

2. 参数直达模式(适合自动化与脚本调用)

通过命令行参数直接指定条件过滤并自动开始下载:

# 1. 下载小学一年级的所有学科教材
python cli.py --xd "小学" --nj "一年级" -y

# 2. 下载高中数学的所有必修/选修教材
python cli.py --xd "高中" --xk "数学" -y

# 3. 下载初中全部教材
python cli.py --xd "初中" -y

# 4. 全局关键词搜索并下载(如包含"物理"的所有教材)
python cli.py --search "物理"

# 5. 清理本地临时图片缓存
python cli.py --clear-cache

# 6. 自定义 PDF 输出路径
python cli.py --xd "小学(六三学制)" --xk "语文" --nj "一年级" -o "D:/Textbooks" -y

参数说明:

参数 说明 示例
--xd 指定学段 小学(六三学制)、初中(六三学制)、小学(五四学制)、初中(五·四学制)、高中、培智学校、聋校、盲校(盲文版)、盲校(低视力版)
--xk 指定学科 语文、数学、英语、物理、化学、历史、道德与法治 等
--nj 指定年级/册次 一年级、二年级 ... 九年级、专项、必修 等
--search, -s 关键词全局搜索 必修、高一、地理
--clear-cache, -c 清理本地下载临时图片缓存 (temp_pages) 无需参数
--refresh, -r 强制重新从官方服务器拉取解密最新目录 无需参数
--output, -o 指定 PDF 保存目录 默认: ./downloads
--yes, -y 跳过确认提示直接开始下载 开启免交互

启动办法三:按「学段 ➔ 年级」层级批量多线程下载 (download_all.py)

如果您希望将教材按照 学段/年级/ 两层规范文件夹分类归档下载,直接运行专属的高速批量多线程下载脚本:

# 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 "一年级"

功能特性:


📦 一键打包为 Windows 独立 EXE 发行版

如果您想将本项目打包成 脱离 Python 环境 的独立绿色软件包发布给普通用户,只需执行工作区自带的一键打包脚本:

python build_exe.py

打包脚本会自动完成以下操作:

  1. 自动检查并安装 PyInstaller 编译工具。
  2. 将 WebUI 及所有 Python 依赖打包为独立可执行文件 FreePEP.exe。
  3. 自动提取并内嵌绿色便携版 Chromium 浏览器内核至 browsers/ 目录。
  4. 自动在 dist/ 目录下生成 FreePEP-Windows-x64.zip 发行压缩包。

分发给用户使用:用户下载压缩包后解压,双击 FreePEP.exe 即可直接使用(会自动弹出系统默认浏览器打开 WebUI,无需安装 Python、无需配置环境变量、无需额外下载浏览器内核)。


📁 项目目录结构

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     # 全量教材元数据本地缓存(自动生成)
├── requirements.txt     # 项目 Python 依赖清单
├── README.md            # 项目使用说明文档
├── temp_pages/          # 图片下载临时缓存目录(下载后自动清理/保留)
└── downloads/           # 生成的高清 PDF 默认存放目录

🔍 技术原理解析

  1. 略。我是不明白为什么免费教材免费提供阅读不提供免费下载。

⚠️ 免责声明 (Disclaimer)

  1. 本项目仅供 Python 爬虫技术交流、逆向工程学习与个人学习研究使用,严禁用于任何商业用途或盈利活动。
  2. 本项目下载的所有教材版权均归**人民教育出版社(PEP)**及相关版权所有方所有。
  3. 使用本项目时请控制请求频率,严禁进行任何可能对官方服务器造成过大负载的行为。请于下载后 24 小时内自行删除,如需长期使用请购买或支持官方正版出版物。
  4. 使用者因违反版权或不当使用造成的一切法律纠纷与责任,均由使用者个人自行承担,与本项目作者无关。

📄 开源许可

本项目基于 MIT License 协议开源。欢迎提交 Issue 与 Pull Request!

FreePEP (siknet/FreePEP)

Searching Database…

1.3K ·GitHub
这是什么?FreePEP 是一个自动化工具,用于解析、批量下载人民教育出版社(PEP,People's Education Press)平台的电子教材,并将其转换为高分辨率 PDF 文件。
它是 WebUI 应用还是命令行工具?两者都是:它提供一个复刻官网分类筛选的现代响应式 WebUI,也提供一个交互式 CLI,可通过菜单导航或直接使用命令行参数以便脚本化。
怎么让它跑起来?最简单的方式:下载预构建的 release,解压并运行 FreePEP.exe,它会自动在浏览器中打开 WebUI。若从源码运行,则克隆仓库、安装依赖,然后运行 webui 脚本或直接运行 cli.py。
使用它需要 Python 吗?只有从源码运行才需要;打包好的 Windows EXE 自带便携版 Chromium 内核,无需安装 Python 或配置环境。
用它来真正下载教材安全吗?作者声明它严格用于 Python 爬虫与逆向工程学习,不得商用,并建议在 24 小时内删除下载的文件,长期使用请购买正版。
它是如何应对网站反爬机制的?它内置一个解密引擎和一个针对阿里云 WAF 滑块验证码的自动破解器,无需人工验证即可访问 780 多本教材的目录。
下载中断了会怎样?批量分层下载器(downloadall.py)支持断点续传,会自动跳过已完整下载的教材,中断的任务可以继续而无需重新下载。
大批量下载能提速吗?可以。分层下载器默认运行 3 个并发线程,并允许你用 -w/--workers 设置自定义工作线程数,以加快批量下载。
我能把它打包成给其他用户使用的独立应用吗?可以。一键打包脚本会构建一个内嵌 Chromium 内核的自包含 FreePEP.exe,产出的 zip 无需安装 Python 即可运行。
Creator
siknet
Size
0.2 MB
Stars
1.3K
Age
1mo
Commits · 90 Days