番茄小说下载器 fanqienovel-downloader 完整指南:3步跑通与本地/Docker/手机部署实操
【免费下载链接】fanqienovel-downloader下载番茄小说项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader
想把整本番茄小说存进手机离线读,还能批量收藏、转成 EPUB?fanqienovel-downloader 是一个用 Python 写的番茄小说下载器,输入小说 ID 或目录页链接,就能自动抓取全文并保存成 TXT、EPUB、HTML 等格式。
3步跑通:最快体验番茄小说下载器
整个过程就三步:克隆仓库、装依赖、启动服务。
git clone https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader cd fanqienovel-downloader pip install -r requirements.txt && python src/server.py启动后在浏览器打开http://localhost:12930,粘贴小说 ID 或链接,几秒内就能看到进度条开始跑,下载完直接点按钮把成品文件存到本地。环境要求不高:Python 3.8 以上,能正常访问番茄小说网即可,依赖只有 requests、Flask、ebooklib、beautifulsoup4 等十来个小包。
跑起来之后能做什么:功能一览
| 功能 | 说明 |
|---|---|
| Web 可视界面 | 搜索、队列、进度条全在浏览器里完成 |
| ID/链接下载 | 粘贴目录页链接或纯 ID 直接开下 |
| 关键词搜索 | 输书名找到小说并拿 ID |
| 批量队列 | 多本书加入队列,自动排队下载 |
| 增量更新 | 已下载的小说只补新章节 |
| 在线阅读 | 下完的书可在网页里直接读 |
| 5 种保存格式 | 整本 TXT、分章 TXT、EPUB、HTML、LaTeX |
| 可调设置 | 段首缩进、请求延时、保存路径、格式均可改 |
五种保存格式对应不同用途:整本 TXT 一个文件最方便携带,分章 TXT 一章一文件便于管理,EPUB 适配各类阅读器,HTML 适合网页浏览,LaTeX 面向打印排版。想按名字查书、批量管理,就用 Web 界面;嫌它麻烦,命令行版main.py也支持输入 ID 下载、搜索、批量、更新,功能一一对应。
选一个适合你的部署方式:本地、Docker、手机对比
三种环境跑的是同一套核心逻辑,区别只在启动方式和数据存放位置:
| 环境 | 适合谁 | 启动方式 | 注意点 |
|---|---|---|---|
| 本地 Python | 想在电脑上马上用的人 | python src/server.py | 建议先建虚拟环境 |
| Docker 容器 | NAS/家用服务器上长期挂着跑 | docker compose up -d | 数据落在 fanqie_data、fanqie_downloads 两个卷里 |
| 手机 Termux | 通勤、宿舍等没电脑的场景 | python src/ref_main.py | 精简版,需先删掉 tkinter 的导入 |
如果你是……推荐……,一句话版本:图省事就用本地 Python,要 7×24 挂着就用 Docker,想在地铁上补两章就用 Termux。
Docker 方式是在克隆后的项目目录里直接执行docker compose up -d,镜像基于 python:3.13-slim 构建,下载的文件和个人配置分别持久化在两个命名卷中,容器挂了会按unless-stopped策略自动拉起。想在特定目录存放数据,改一下 docker-compose.yml 里的卷挂载即可。
手机端的 Termux 方案:
pkg install python pip install requests ebooklib tqdm beautifulsoup4 CFLAGS="-O0" pip install lxml python src/ref_main.pylxml 在部分安卓机型上会编译失败,用CFLAGS="-O0"降优化等级就能装上。
原理扫一眼:它怎么拿内容、怎么不被拦
📖 下载器做的事说白了是三步:先拿目录,再并发抓每一章,最后清洗文本存盘。请求调度上,它内置了三个 User-Agent 随机轮换,两次请求之间插入 50~150ms 的随机延时,Cookie 会自动获取并缓存到cookie.json,每次启动先验证、失效就重新拿。这三层手段保证了连抓几百章也不容易被封。
内容解析走的是"线程池 + BeautifulSoup":默认 16 个线程并行拉章节,每章 HTML 清洗成纯文本后,还会经过一份charset.json映射表把特殊编码字符还原成正常汉字,再按你选的格式落盘。并发数、延时、保存路径这些可调项全部集中在Config数据类里,运行时会写成 JSON 存在data目录下。
这个结构带来的好处很直接:出问题时你只需要看data/config.json和record.json两个文件;想恢复默认行为,删掉 config.json 重启即可。
让它更快更稳:5 个关键参数配置
| 参数 | 推荐值 | 适用场景 |
|---|---|---|
xc并发线程数 | 默认 16;家庭宽带 8~12;移动网络 4~8 | 并发越高越快,但请求压力越大 |
delay请求延时(毫秒) | 默认 [50, 150];频繁超时改 [200, 500] | 间隔拉大,成功率更稳 |
save_path保存路径 | 默认项目下novel_downloads | 可指到 NAS 或移动硬盘分区 |
save_mode保存格式 | 1 整本 TXT / 3 EPUB 最常用 | 按你读书的设备选 |
kg/kgf段首缩进 | 0 或全角空格 ×2 | 控制段落是否首行缩进 |
改设置会直接覆盖旧值,这是它明确的行为——改乱了就删掉config.json,下次启动自动重建默认配置,不用折腾。
让它变成你的:API 集成与自定义格式
Web 版本身就是一组 REST 接口:POST /api/search搜索、POST /api/queue/add/<id>入队、GET /api/download/<id>触发下载、/api/settings读写配置。写个自动化脚本直接调这些接口即可,不必碰前端。想加新保存格式,动手的位置在 src/main.py 的SaveMode与各保存方法,界面模板在 src/templates/,前端基本不用动。
使用下载器的几条注意事项
- 只把下载内容用于个人离线阅读和学习,不要二次发布或商用
- 控制节奏:默认延时和并发已是温和档,别为求快把参数拉满后大批量刷
- 版本敏感:v1.1.6 及以下的旧接口已失效,务必用最新源码
- 项目遵循 AGPL-3.0 协议,修改源码后再分发需注明来源并沿用同一协议
最后说两句
fanqienovel-downloader 是一个开箱即用的番茄小说下载器:普通用户记住"克隆、装依赖、启动"三步,Web 界面足够日常使用;开发者可以顺着 src/ 里下载引擎、Flask 服务、配置三层去看,加格式、接自动化工具都不难。项目在持续跟进页面结构变化,保持最新版本即可。
【免费下载链接】fanqienovel-downloader下载番茄小说项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考