news 2026/8/22 20:34:04

小说下载器完整指南:4 步跑通批量下载,把整本网文打包成 TXT 与 EPUB

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
小说下载器完整指南:4 步跑通批量下载,把整本网文打包成 TXT 与 EPUB

小说下载器完整指南:4 步跑通批量下载,把整本网文打包成 TXT 与 EPUB

【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader

你花钱入 V 的书,网站说删就删,连个招呼都不打。小说下载器是一个跑在浏览器里的油猴脚本:打开受支持网站的目录页,点一下右上角的图标,整本书按分卷结构批量抓下来,打包成 TXT 和 EPUB 存进你的硬盘。书还在的时候,它就替你留住。

先说它能替你解决什么

一句话:把"手动复制粘贴几百章"压缩成一次点击。

  • 批量抓全书:目录页点一下,几百章逐章自动抓取,右下角进度条实时可看;
  • 双格式成品:TXT 任何设备直接打开,EPUB 带封面、目录、插图,扔进阅读器就能读;
  • 反爬有对策:图片藏字、字体加密、单页应用,都有现成处理方案;
  • 高度可定制:下哪些章节、标题长什么样、多快下完,全都能按你的习惯调。

上图是脚本输出的 EPUB 成品书页:书名、封面、简介、分卷章节一层不差,这就是"保存"的最终形态。

知道它给什么之后,花十秒钟判断它适不适合你。

定位与选型:一枚贴在浏览器上的"书签"

它不是要单独安装的应用,而是一枚贴在浏览器上的书签——书签背后站着完整的下载逻辑,借你现成的登录态和网络环境干活:你在网站上登录过、买过什么,下载时就默认拥有这些权限,不用二次配置账号。

对比维度油猴脚本(本项目)独立抓取软件
安装浏览器装脚本管理器,拖入脚本即可下载安装包,长期维护独立进程
登录状态直接沿用浏览器里的会话常需单独导出、配置 Cookie
运行环境就在你正看着的页面上工作脱离页面,另行模拟请求
单页应用读页面实时 DOM,天然适配需重新渲染,适配成本高

结论:要下需要登录才可见的付费章节,基本只有脚本方案顺手。判断标准也简单——目标网站在支持列表里、浏览器能正常登录,就可以往下走。

判断合适的话,下面四步跑通全流程。

⚡ 首次上手:4 步拿到你的第一个成品

  1. 装脚本管理器。Tampermonkey、Violentmonkey、Greasemonkey 三选一,装完浏览器工具栏会出现管理器图标。
  2. 构建脚本本体。克隆仓库并编译,产出成品脚本:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build
  1. 安装脚本。dist/bundle.user.js拖进脚本管理器,权限弹窗全部允许。预期结果:管理器列表里多了一条"小说下载器"。
  2. 下载一本书。打开任一受支持网站的目录页,点右上角的下载图标;右下角进度条走完后,浏览器自动落盘 TXT 与 EPUB,另附一个含 HTML 章节的 zip。

上图是一次真实下载的收尾画面:控制台逐章打印"下载完成",任务栏里 zip 与 txt 成品已经落袋,全程零人工干预。

小贴士:下载全程有一段"听不见"的音频在播,那是脚本用来阻止浏览器休眠后台标签页的,不是卡死。

跑通只是开始,接下来看它最硬核的一手。

硬核透视:正文被做成图片时,它怎么"读"回来

有些站(比如西瓜书屋)把正文整段替换成图片,普通抓取只能拿回一堆无意义图片。小说下载器为此设计了"先查单号、再比指纹、最后请人认字"的三层解码,按成本从低到高逐层兜底:

解码层原理成本
文件名映射图片文件名本身编码了文字,查表即得最低,命中零耗时
哈希匹配下载图片计算哈希,与远程映射表比对较低,内容相同即可命中
OCR 识别PaddleOCR 中文模型逐字识别最高,但准确度最好

匹配表会自动拉取并缓存在脚本管理器本地存储,OCR 模型仅首次使用时下载,之后全程本地复用(实现见 src/lib/decoders/)。三层都没命中的字会被略过,所以图文站建议再用 zip 里的 HTML 版核对一遍。

另一道常见的墙是字体加密:正文用自定义字体渲染,抓回来是乱码。脚本会自动下载字体并建立字符映射还原真字;晋江文学城、番茄小说偶尔需要手动配合一次字体匹配,留意控制台以[jjwxc-font][fanqie-font]开头的提示即可。

上图是保存后的章节页:段落干净、插图原位保留,阅读体验接近原站。

会读了,再让它听你的。

个性化配置:三种常见需求的改法

需求一:只下部分章节。点下载前按 F12,在 Console 挂一个chapterFilter,只有返回 true 的章节才进下载队列:

function chapterFilter(chapter) { return chapter.chapterNumber <= 50; // 只下前 50 章 }

按分卷筛就改判sectionNumber,按关键词筛就查chapterName

需求二:统一成品排版。挂一个saveOptions对象,改标题格式、注入 CSS 调缩进行距都行:

const saveOptions = { getchapterName: (c) => `第${c.chapterNumber}章 ${c.chapterName}` }; window.saveOptions = saveOptions;

需求三:下完自动收尾。定义一个customFinishCallback函数,它会在 zip 生成后自动执行,比如顺手window.close()关掉标签页。

避坑:三个钩子都必须在点击右下角下载图标之前注入,之后再点下载才生效;顺序反了,配置会被直接忽略。

调得越狠,越要会排障。

🩹 排障速查:下载不顺先看这张表

现象常见原因怎么办
右上角没有下载图标单页应用尚未初始化按 F5 强制刷新当前页
付费章节全部跳过未登录或未购买先登录网站账号,确认已购买对应章节
速度明显变慢网站限速反爬设置里调高并行下载线程数
正文出现乱码字符字体加密未完成匹配按控制台[jjwxc-font]/[fanqie-font]提示提交匹配
图片处文字空白三层解码均未命中改用 zip 内 HTML 版章节核对

拿调试信息的路径:先在设置里开启调试模式,下载完成后 zip 内会多出一份debug.log;若卡到连文件都没生成,就在设置里打开测试视图,把日志选项卡内容整个复制存成 txt,连同环境信息按模板提交 issue。反馈请走项目 issue 区——评论区、交流群里的反馈不会被处理。

上图是 TXT 成品的最终形态:分卷、章节标记分层,离线打开无障碍。

自己搞不定的,交给社区。

生态与参与:新站点是怎么"长"出来的

项目覆盖国内外一百多个站点:起点、晋江等国内原创平台,Lofter、pixiv 等创作社区,小説家になろう等日本平台,再加一大批笔趣阁系转载站。规则按页面结构分类存放在 src/rules/(onePage、twoPage、special、biquge、mbtxt 等),每个网站像一张配方卡——新站接入大多只需照同类模板填两个空:章节链接怎么取、正文怎么取,其余能力全部复用。

想扩展或反馈的最短路径:先在 issue 区搜是否已有同类请求,有就补充,没有就按模板新开;想自己加站,继承BaseRuleClass实现bookParsechapterParse,到 src/router/download.ts 登记域名,构建后提交即可。

下一步

下次再遇到想长期留下的作品,别再只点收藏:打开目录页,等右上角图标出现,点下去。十分钟后,你的硬盘里会多一本随时能打开的 EPUB——网站哪天关不关,都关不到它头上。

【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 20:31:38

C++可变参数模板实战:从基础语法到编译期多分派实现

1. 从“Hello World”到“Hello Args...”&#xff1a;为什么我们需要可变参数模板&#xff1f;如果你写过C&#xff0c;肯定对printf(“Hello, %s”, “World”)不陌生。这个经典的C函数能接受任意数量的参数&#xff0c;这在C语言里是通过va_list、va_start、va_arg这些宏在编…

作者头像 李华
网站建设 2026/8/22 20:31:32

数学建模备赛:从算法学习到系统化能力构建的实战指南

1. 项目概述&#xff1a;从“备赛”到“系统化能力构建”“数学建模备赛”这个标题&#xff0c;听起来像是一个阶段性的任务&#xff0c;但如果你真的把它当成赛前几个月突击一下就能搞定的事情&#xff0c;那大概率会走很多弯路。我参加过也指导过不少次&#xff0c;从国赛、美…

作者头像 李华
网站建设 2026/8/22 20:26:40

从自行车赛到博弈论:数学建模实战解析与多智能体模拟应用

1. 从一场自行车赛到博弈论的实战推演如果你关注过2022年的美国大学生数学建模竞赛&#xff08;MCM/ICM&#xff09;&#xff0c;或者对“数学建模”、“博弈论”这些词有点兴趣&#xff0c;那你大概率听说过A题“Cycling Time Trial”。这道题当时让不少队伍直呼“烧脑”&…

作者头像 李华
网站建设 2026/8/22 20:25:20

企业级AI编程实战:一周掌握Vibe Coding与多工具集成

在实际企业级项目开发中&#xff0c;如何将AI编程助手从“玩具”转变为“生产力工具”&#xff0c;是许多开发者面临的共同挑战。单纯地使用AI生成代码片段&#xff0c;与将其深度集成到团队的工作流、编码规范、测试和部署流程中&#xff0c;是完全不同的两件事。Vibe Coding作…

作者头像 李华
网站建设 2026/8/22 20:23:41

MOFA2 快速上手:5 步完成多组学数据整合与因子分析

MOFA2 快速上手&#xff1a;5 步完成多组学数据整合与因子分析 【免费下载链接】MOFA2 Multi-Omics Factor Analysis 项目地址: https://gitcode.com/gh_mirrors/mo/MOFA2 如果你在同一批样本上测了多种组学&#xff08;比如 RNA-seq、ATAC-seq、甲基化&#xff09;&…

作者头像 李华
网站建设 2026/8/22 20:23:20

本地部署PDF全能工具箱:130+工具集成与隐私安全实践

这次我们来看一个本地部署的PDF全能工具箱项目。它集成了超过130种PDF处理工具&#xff0c;从基础的编辑、格式转换&#xff0c;到压缩、拆分合并、加密解密&#xff0c;几乎覆盖了所有你能想到的PDF操作场景。最关键的是&#xff0c;它完全免费、开源&#xff0c;并且支持本地…

作者头像 李华