Home
avatar

xiao

【开源分享】番茄小说搜索解析与下载-多平台支持(手机可用)

番茄小说下载器

简洁高效的小说下载与导出工具,采用 HTML5 现代化界面,支持 TXT/EPUB 多格式导出。

我这里主要面向手机用户,其他系统用户也有,但需要自己去github下载所需文件,在最下面有链接。

核心功能

  • 获取书籍信息 - 封面、作者、简介等完整信息
  • 灵活下载 - 支持整本或范围下载
  • 多格式导出 - TXT/EPUB 格式,EPUB 自动添加封面
  • 实时进度 - 动态日志显示和进度条更新
  • 跨平台支持 - Windows/Mac/Linux 无缝运行
  • 现代化界面 - HTML5 + CSS3,响应式设计

快速开始

前置要求

  • Python 3.7+ (下载)
  • Windows/Mac/Linux 任意操作系统

Windows 用户(推荐)

直接双击 run.bat 文件,应用会自动启动

Mac/Linux 用户

chmod +x run.sh
./run.sh

安卓用户

先下载termux 第一步,先更新环境

pkg update && pkg upgrade -y

然后就可以安装Python

pkg install python -y

接着输入

RAW_URL="https://raw.githubusercontent.com/zhongbai2333/Tomato-Novel-Downloader/main/installer.sh"; API="https://api.cenguigui.cn/api/github/?type=json&url=$RAW_URL"; DL_URL="$(curl -fsSL "$API" | sed -n 's/.*"downUrl":"\([^"]*\)".*/\1/p')"; DL_URL="${DL_URL//\\//}"; [ -z "$DL_URL" ] && DL_URL="$RAW_URL"; bash <(curl -fsSL "$DL_URL")

路径默认就行,反正一切都默认嘛~ 如果报错可以问AI,最后要运行时输入

./run.sh

就可以了,第一次使用可以进行配置

手动启动

pip install -r requirements.txt
python main.py

或启动 Web 服务器,在浏览器访问 http://127.0.0.1:5000

python web_app.py

使用步骤

1. 获取书籍 ID 或 URL

方式 A - 从 URL 获取

  • 在番茄小说网页版搜索喜欢的小说
  • 打开小说详情页
  • 复制浏览器地址栏的完整 URL,如:https://fanqienovel.com/page/7199473033239596087

方式 B - 直接使用书籍 ID

  • 从 URL 中提取数字 ID,如:7199473033239596087
  • 在”书籍 ID/URL”输入框中输入

2. 选择保存路径

  1. 点击 ”📁 浏览” 按钮
  2. 输入保存目录的完整路径(Windows: C:\Users\YourName\Downloads\novels 或 Mac/Linux: /home/username/Downloads/novels
  3. 点击 “开始下载” 按钮确认

提示:第一次设置的路径会被保存,下次自动填充

3. 选择文件格式

  • TXT (默认) - 纯文本格式,兼容性最好
  • EPUB - 电子书格式,支持各类阅读器

4. 开始下载

  1. 输入书籍信息(ID/URL)
  2. 选择保存路径
  3. 选择文件格式
  4. 点击 ”🚀 开始下载” 按钮

下载过程中会看到:

  • 📊 进度条 - 实时显示完成百分比
  • 📝 日志窗口 - 显示详细的下载信息
  • 📚 书籍名称 - 当前下载的小说标题

5. 取消下载(可选)

  • 点击 ”⏹ 取消下载” 按钮可中止当前任务
  • 已下载的内容会保留(不会删除)

常见问题

Q: 如何获取书籍 ID?

A: 有两种方法:

  1. 从 URL 提取 - 输入完整 URL 或仅输入 ID
  2. 从 App 获取 - 打开番茄小说 App,搜索小说,打开详情页,右上角分享选择”复制链接”,粘贴到应用中

Q: 下载速度很慢怎么办?

A: 这是正常现象,原因包括网络连接速度受限、服务器限流保护、章节内容较多等。改善方法:

  • 确保网络连接稳定
  • 尝试在网络高峰期后下载
  • 检查是否有代理或 VPN 干扰

Q: 下载失败显示”获取书籍信息失败”

A: 可能的原因:

  1. 书籍 ID 错误 - 检查 ID 是否复制完整
  2. 书籍已下架 - 小说被作者或平台删除
  3. 网络问题 - 检查网络连接,尝试代理
  4. API 限制 - 依赖的接口暂时不可用,稍后重试

Q: EPUB 格式和 TXT 格式有什么区别?

A:

特性TXTEPUB
文件大小较小较大(含封面)
兼容性最好(任何阅读器)需要 EPUB 阅读器
排版无格式带自动排版
封面自动添加
推荐用途备份、长期存储Kindle、平板阅读

Q: 应用占用的资源多吗?

A: 非常轻量级:

  • 启动时内存占用:<100MB
  • 下载时内存占用:<200MB
  • 磁盘空间:仅应用本身 <50MB

Q: 支持断点续传吗?

A: 暂不支持,但有两个替代方案:

  1. 保存进度 - 已下载的章节会保留,可以手动编辑文件继续
  2. 重新下载 - 重新下载会覆盖之前的文件

Q: 可以同时下载多个小说吗?

A: 目前只支持单一下载队列,可以下载完一个后再下载另一个。后续版本可能支持队列功能。

高级用法

设置自定义下载路径

编辑 config.json 文件:

{
  "save_path": "/path/to/your/novels",
  "file_format": "txt"
}

修改应用样式

编辑 static/css/style.css 文件,自定义颜色和布局:

:root {
    --primary: #1976D2;      /* 修改主色 */
    --success: #4CAF50;      /* 修改成功提示色 */
    /* 更多颜色... */
}

故障排除

错误:Address already in use

原因:端口 5000 被占用

解决

  1. 关闭其他使用该端口的应用
  2. 或修改 main.py 中的端口号(默认 5000)

错误:ModuleNotFoundError: No module named ‘flask’

原因:依赖包未安装

解决

pip install flask flask-cors

应用无法打开窗口

原因:PyWebView 未安装或无法初始化

解决

pip install pywebview

如果仍未解决,应用会自动使用系统浏览器(自动回退)

下载中途断开怎么办?

方案 1:重新开始下载(覆盖之前的文件)
方案 2:手动合并下载的部分内容
方案 3:联系开发者反馈 bug

项目结构

├── main.py              启动脚本(推荐使用)
├── web_app.py          Flask 后端应用
├── novel_downloader.py 核心下载逻辑
├── templates/
│   └── index.html      HTML 前端页面
├── static/
│   ├── css/style.css   样式表
│   └── js/app.js       前端逻辑
└── requirements.txt    依赖管理

技术栈

  • 前端 - Vanilla JavaScript + CSS3 响应式设计
  • 后端 - Flask REST API
  • 窗口 - PyWebView 原生窗口框架
  • 核心 - 原有 novel_downloader.py 逻辑保留

法律声明

本工具仅供个人学习和研究使用,用户需自行承担使用本工具所造成的一切后果。

禁止用于

  • ❌ 商业用途
  • ❌ 侵犯著作权
  • ❌ 大规模爬取和传播
  • ❌ 任何违法活动

责任免责

  • 因依赖 API 变更导致的功能失效
  • 因用户操作不当导致的数据丢失
  • 任何法律纠纷或版权问题

反馈与贡献

如有问题或建议,欢迎:

许可证

MIT License

termux 小说下载 开源 GitHub