跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Z-Reader - 由python实现的小说下载工具

Z-Reader - 小说下载工具 项目地址 Z-Reader 是一个基于 Python 的小说搜索与下载工具,提供现代化的 Web 界面,支持多书源配置和并发下载。

本项目从 sonovel 重构得来。

支持大部分主流网络小说网站。

仅供学习交流使用。

windows用户可以直接前往Release页面下载exe并启动 ✨ 项目特点 🌐 Web 界面 : 基于 Flask 的现代化 Web 界面,支持移动设备 📚 多书源支持 : 完全基于规则配置,支持 11+ 书源 🔍 智能搜索 : 支持按关键词搜索,可指定书源或搜索所有书源 ⬇️ 并发下载 : 支持多线程并发下载,可配置线程数 📊 任务管理 : 实时查看下载进度,管理下载任务 📁 文件管理 : 查看和下载已完成的文件 🎨 美观UI : 渐变色主题,响应式设计 🚀 快速开始 1. 安装依赖

pip install -r requirements.txt

2. 启动服务器

python server.py

3. 访问界面 浏览器打开:

http://localhost:5000

📖 使用说明 🔍 搜索书籍 在搜索框输入关键词 选择特定书源或搜索所有书源 查看搜索结果,显示书名、作者、分类、状态等信息 ⬇️ 下载管理 点击书籍进入详情页 设置起始和结束章节 开始下载,实时查看进度 支持多任务同时下载 📁 文件管理 在"已下载"页面查看所有下载完成的文件 点击文件名可直接下载到本地 文件保存在

downloads/

目录下 配置文件

rules/main-rules.json

: 主要书源规则

rules/flowlimit-rules.json

: 流量限制配置

rules/proxy-rules.json

: 代理配置

rules/rule-template.json5

: 规则模板 📁 项目结构 项目目录结构

Z-reader/

├── core/ # 核心功能层 │ ├── __init__.py # 包初始化 │ ├── downloader.py # 下载器 - 协调整个下载流程 │ ├── http_client.py # HTTP客户端 - 封装网络请求 │ ├── rule_loader.py # 规则加载器 - 管理书源规则 │ └── selector.py # 选择器 - HTML解析和提取 │ ├── models/ # 数据模型层 │ ├── __init__.py # 包初始化 │ ├── book.py # 书籍模型 │ ├── chapter.py # 章节模型 │ └── rule.py # 规则模型 │ ├── parsers/ # 解析器层 │ ├── __init__.py # 包初始化 │ ├── book_parser.py # 书籍详情解析器 │ ├── chapter_parser.py # 章节内容解析器 │ ├── search_parser.py # 搜索结果解析器 │ └── toc_parser.py # 目录解析器 │ ├── rules/ # 书源规则配置 │ ├── main-rules.json # 主要书源规则 │ ├── flowlimit-rules.json # 流量限制规则 │ ├── non-searchable-rules.json # 不可搜索书源 │ ├── proxy-rules.json # 代理规则 │ └── rule-template.json5 # 规则模板 │ ├── utils/ # 工具模块 │ ├── __init__.py # 包初始化 │ └── file_utils.py # 文件操作工具 │ ├── static/ # 静态资源 │ ├── css/ │ │ └── style.css # 样式文件 │ └── js/ │ └── app.js # 前端JavaScript │ ├── templates/ # HTML模板 │ ├── index.html # 主页面模板 | └── index.md # 公告文件 │ ├── downloads/ # 下载文件存储 │ ├── tests/ # 测试模块 │ ├── __init__.py # 包初始化 │ ├── examples.py # 测试示例 │ ├── test_basic.py # 基础测试 │ └── test_parsers.py # 解析器测试 │ ├── server.py # Flask Web服务器 ├── requirements.txt # Python依赖 ├── check_sources.py # 书源检查工具 └── test_sources.py # 书源测试工具

核心模块详解 1. 数据模型层 (models/) book.py - 书籍模型 定义书籍信息的数据结构,包含书名、作者、简介、分类、状态等字段。

chapter.py - 章节模型 定义章节信息的数据结构,包含标题、URL、内容、索引等字段。

rule.py - 规则模型 定义书源规则的数据结构,包含搜索规则、书籍规则、目录规则、章节规则等配置。

2. 核心功能层 (core/) downloader.py - 下载器 协调整个下载流程,包括获取书籍信息、解析目录、并发下载章节、保存文件等。

http_client.py - HTTP客户端 封装网络请求功能,提供自动重试、请求间隔控制、SSL验证等功能。

rule_loader.py - 规则加载器 负责加载和解析JSON格式的书源规则文件,管理多个书源配置。

selector.py - 选择器 提供HTML解析和内容提取功能,支持CSS选择器和XPath表达式。

3. 解析器层 (parsers/) search_parser.py - 搜索解析器 解析搜索结果页面,提取书籍列表信息。

book_parser.py - 书籍解析器 解析书籍详情页面,提取书籍的详细信息。

toc_parser.py - 目录解析器 解析章节目录页面,提取章节列表。

chapter_parser.py - 章节解析器 解析章节内容页面,提取章节正文内容。

4. Web界面 (server.py) 基于Flask框架的Web服务器,提供用户界面和API接口,支持搜索、下载、文件管理等功能。

🛠️ 开发说明 添加新书源 在

rules/

目录下创建新的规则文件 参考

rule-template.json5

格式编写规则 使用

check_sources.py

验证规则有效性 自定义功能 修改

server.py

可调整Web界面 扩展

parsers/

可添加新的解析逻辑 修改

core/

可调整核心下载逻辑 📝 许可证 GPL-3.0 版本 : 1.0.0 | 更新 : 2025-10-30

相关文章