3 分钟跑通 fanqienovel-downloader:番茄小说整本离线下载与格式选择教程
【免费下载链接】fanqienovel-downloader下载番茄小说项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader
fanqienovel-downloader 是一个 Python 写的番茄小说下载工具:输入小说 id 或链接,它自动抓取整本书,转成 TXT、EPUB 等格式存到本地。适合想把小说离线保存到手机、阅读器或 NAS 上的普通读者。
能力速览
- 离线阅读:整本书落到本地磁盘,断网状态下也能逐章翻阅
- 批量囤书:Web 版内置队列,多本书排队自动下载,挂后台不用盯
- 阅读器直装:存成 EPUB 时自动带上书名、作者和封面,导入墨水屏设备即可看
- 追更更新:之前下载过的书会被记录,随时重新抓取最新章节
- 按名找书:页面里直接搜书名拿 id,不用去网站翻找
跑起来:Docker 一条命令搞定
最省事的方式是用 Docker(一种把应用打包成容器、不用装依赖的运行方式),克隆仓库后直接启动:
git clone https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader cd fanqienovel-downloader docker compose up -d启动后默认占用 12930 端口,浏览器打开http://localhost:12930即可使用。下载的书和配置分别放进fanqie_downloads、fanqie_data两个 Docker 卷(容器里的持久化存储空间),重启容器不会丢。
不想用 Docker 就用 Python 直跑:克隆后执行pip install -r requirements.txt装依赖,进入src目录运行python server.py,端口相同。想在手机上用,则装好 Termux 后pip install requests lxml ebooklib tqdm beautifulsoup4,lxml 编译报错就先apt install clang libxml2 libxslt再CFLAGS="-O0" pip install lxml,最后python src/ref_main.py,它是纯命令行界面。
输出格式怎么挑:按阅读器对照选
在设置页(或配置文件)选save_mode,1~5 与下列模式一一对应:
| 保存模式 | 落到本地的文件 | 什么情况下选它 |
|---|---|---|
| 1 整本 TXT | 单个.txt | 手机自带文本阅读器打开最省事 |
| 2 分章 TXT | 以书名为目录,一章一个.txt | 书很长、想按章翻找 |
| 3 EPUB | 单个.epub,带作者与封面 | 墨水屏、微信读书等标准阅读器 |
| 4 HTML | 带样式的网页目录,Web 版下载时直接给压缩包 | 习惯在浏览器或平板里看书 |
| 5 LaTeX | .tex工程文件 | 真要排版打印的时候 |
配置调优:遇到什么问题改什么
| 遇到的情况 | 对应字段 | 建议取值 | 为什么这么调 |
|---|---|---|---|
| 章节抓空、速度被限 | delay | [50, 150]起步,老被限就放到[200, 500] | 单位毫秒,决定每章之间的随机间隔,放慢后不容易触发风控 |
| 想更快或更温和 | xc | 家宽和手机网络给 4~8,带宽富余给 8~16 | 它是同时抓取的章节线程数,再往上收益很小 |
| 换输出格式 | save_mode | 1~5 对应上表五种模式 | 无性能差异,纯按你的阅读器选 |
| 段首缩进不对 | kg/kgf | kg=0取消缩进;kgf填缩进字符 | 控制段首占位符,默认是全角空格 |
配置文件在src/data/config.json。程序底层靠随机延迟加多个请求身份轮换来降低被风控的概率,所以参数往温和里调,比研究别的技巧都管用;改乱了直接删掉这个文件即可恢复默认。
常见问题:照着步骤修
Q1:依赖装不上,lxml 编译报错?Termux 里先执行apt install clang libxml2 libxslt,再CFLAGS="-O0" pip install lxml;桌面端则新建一个干净的 venv 虚拟环境,重新pip install -r requirements.txt。
Q2:12930 端口被占、页面打不开?Docker 部署就把docker-compose.yml里的端口映射从12930:12930改成12931:12930,重新docker compose up -d;本机直跑就找到占用 12930 的进程停掉。
Q3:打开 TXT 是乱码,段首空格怪?用 UTF-8 编码的编辑器(VS Code、记事本)打开;缩进不对就删除src/data/config.json恢复默认,或在设置里把段首占位改回 2 个全角空格。
Q4:日志一直刷ProxyError?说明你开了代理或加速器,关掉后重试即可。
进阶:用 API 接自己的脚本
Web 版本质是一个 Flask 服务(Python 的轻量 Web 框架),常用接口长这样:
# 按书名搜索,从返回结果里拿 novel_id curl "http://localhost:12930/api/search?keyword=剑来" # 用 id 发起下载 curl http://localhost:12930/api/download/7143038691944959011 # 查当前队列的下载状态 curl http://localhost:12930/api/queue/status/api/settings还能直接读写配置,脚本里顺手改掉save_mode也没问题。
它适合想把番茄小说离线保存下来慢慢看的读者,以及愿意在 NAS 或服务器上挂个小容器的人;它只覆盖番茄这一个平台,指望它下载别家内容或做内容再分发就不合适了。
【免费下载链接】fanqienovel-downloader下载番茄小说项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考