python/book_reader/功能说明.md

4.3 KiB
Raw Blame History

小说阅读器功能说明

项目概述

本项目是一个基于Python Tkinter的小说阅读器应用支持从指定网址爬取小说内容并生成PDF文件同时提供PDF阅读功能。

实现功能

1. 小说爬取功能

  • 网址输入:支持输入小说章节列表页网址
  • 章节解析:自动解析网页中的章节列表
  • 多线程爬取使用ThreadPoolExecutor并发爬取章节内容提高速度
  • 内容清理:自动过滤广告内容和无关文本

2. PDF生成功能

  • 中文支持:使用宋体字体确保中文正常显示
  • 书签生成自动为每个章节添加PDF书签
  • 页面布局:合理的页边距和行距设置
  • 页码显示:每页底部显示页码和书名

3. PDF阅读功能

  • 内容显示使用PyMuPDF渲染PDF页面
  • 书签导航左侧显示PDF书签点击可跳转到对应页面
  • 左右分栏布局:书签和内容并排显示
  • 可调整大小:支持拖动分隔线调整左右面板比例
  • 滚动浏览:支持鼠标滚轮和滚动条浏览内容

4. 文本阅读模式

  • 章节列表:左侧显示所有章节标题
  • 内容显示:右侧显示章节文本内容
  • 章节切换:点击章节列表切换章节

5. 搜索小说功能

  • 关键词搜索:输入小说名称进行搜索
  • 结果展示:显示搜索结果列表
  • 一键选择:选择结果自动填充网址和名称

技术实现

核心技术栈

模块 技术 说明
GUI框架 Tkinter Python内置图形界面库
网络请求 requests HTTP请求库
HTML解析 BeautifulSoup HTML解析库
PDF生成 ReportLab PDF生成库
PDF处理 PyMuPDF (fitz) PDF读取和书签处理
多线程 concurrent.futures 并发爬取支持

关键特性

  1. 多线程爬取最多10个线程同时爬取大幅提升速度
  2. 连接池优化使用HTTPAdapter设置连接池减少连接开销
  3. 状态管理:支持爬取过程中的状态监控和停止操作
  4. 异常处理:完善的异常捕获和错误提示

依赖与安装

依赖库列表

库名称 版本 用途
requests >=2.31.0 HTTP网络请求
beautifulsoup4 >=4.12.0 HTML解析
reportlab >=4.0.0 PDF生成
pymupdf >=1.23.0 PDF读取和渲染
pypdf >=4.0.0 PDF书签处理
lxml >=5.1.0 HTML解析支持

安装方法

方法一使用pip逐一安装

pip install requests
pip install beautifulsoup4
pip install reportlab
pip install pymupdf
pip install pypdf
pip install lxml

方法二使用requirements.txt

创建 requirements.txt 文件,内容如下:

requests>=2.31.0
beautifulsoup4>=4.12.0
reportlab>=4.0.0
pymupdf>=1.23.0
pypdf>=4.0.0
lxml>=5.1.0

然后执行安装:

pip install -r requirements.txt

验证安装

安装完成后,可以通过以下命令验证:

python -c "import requests; import bs4; import reportlab; import fitz; import pypdf; print('所有依赖安装成功')"

注意事项

  1. ReportLab字体如果生成PDF时中文显示为方框需要确保系统中有宋体字体
  2. PyMuPDF版本:建议使用最新版本以获得更好的兼容性
  3. 网络环境:爬取功能需要网络连接,部分网站可能需要代理

使用说明

爬取小说

  1. 在"网址"输入框中输入小说章节列表页网址
  2. 在"小说名称"输入框中输入小说名称
  3. 点击"开始爬取"按钮
  4. 等待爬取完成自动生成PDF文件

阅读PDF

  1. 点击"打开PDF"按钮选择PDF文件
  2. 左侧显示书签列表(如有)
  3. 点击书签跳转到对应页面
  4. 拖动中间分隔线调整左右面板大小

切换阅读模式

  • 文本阅读:查看爬取的文本内容
  • PDF阅读查看生成的PDF文件

输出文件

爬取完成后PDF文件保存在项目目录下的 download 文件夹中,文件名与输入的小说名称一致。

注意事项

  1. 爬取速度受网络状况和目标网站限制
  2. 建议使用合法合规的小说网站进行爬取
  3. PDF生成需要安装ReportLab库
  4. PDF书签功能需要安装PyPDF库

项目版本1.0 最后更新2026年4月