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)

multithreading
Searching Database…

1.3K ·GitHub
What is this?FreePEP is an automation tool that parses, batch-downloads, and converts electronic textbooks from the PEP (People's Education Press) platform into high-resolution PDF files.
Is it a WebUI app or a command-line tool?Both: it ships a modern responsive WebUI that mirrors the official site's category filters, and an interactive CLI with menu navigation or direct command-line arguments for scripting.
How do I get it running?Easiest way: download the prebuilt release, unzip it, and run FreePEP.exe, which opens the WebUI in your browser automatically. From source, clone the repo, install dependencies, and run the webui script or cli.py directly.
Do I need Python to use it?Only if running from source; the packaged Windows EXE bundles its own portable Chromium core and needs no Python install or environment setup.
Is this safe to use for real textbook downloads?The author states it's strictly for Python scraping and reverse-engineering study, not commercial use, and recommends deleting downloaded files within 24 hours and buying official copies for long-term use.
How does it handle the site's anti-bot protection?It includes a built-in decryption engine and an automatic cracker for Aliyun WAF slider captchas, letting it access the catalog of 780+ textbooks without manual verification.
What happens if a download is interrupted?The bulk hierarchical downloader (downloadall.py) supports resume, automatically skipping textbooks that are already fully downloaded so interrupted runs can continue without redownloading.
Can I speed up large batch downloads?Yes, the hierarchical downloader runs 3 concurrent threads by default and lets you set a custom worker count with -w/--workers for faster bulk downloads.
Can I turn this into a standalone app for other users?Yes, a one-click packaging script builds a self-contained FreePEP.exe with an embedded Chromium core, producing a zip that requires no Python installation to run.
Creator
siknet
Size
0.2 MB
Stars
1.3K
Age
1mo
Commits · 90 Days