# 小说阅读器功能说明 ## 项目概述 本项目是一个基于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逐一安装 ```bash pip install requests pip install beautifulsoup4 pip install reportlab pip install pymupdf pip install pypdf pip install lxml ``` #### 方法二:使用requirements.txt 创建 `requirements.txt` 文件,内容如下: ```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 ``` 然后执行安装: ```bash pip install -r requirements.txt ``` ### 验证安装 安装完成后,可以通过以下命令验证: ```bash 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月*