追更的小说突然404,靠什么抢救?novel-downloader 小说下载器完整上手方案
2026/8/17 17:45:24 网站建设 项目流程

追更的小说突然404,靠什么抢救?novel-downloader 小说下载器完整上手方案

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

如果你在起点、晋江或刺猬猫追过连载,大概率经历过这样的时刻:某天照常点开书架,发现收藏的小说毫无征兆地消失,连购买过的章节也一并人间蒸发。这种"404"并不罕见——平台清理、版权到期、整站关停,理由千奇百怪,结果却只有一个:你花钱和时间追完的故事,再也找不回来了。而 novel-downloader 小说下载器要解决的,正是这个问题:在小说还在线上的时候,把它完整、干净地搬回你自己的硬盘。

为什么"手动另存为"永远救不了你的书单

在介绍方案之前,先拆解一下问题到底出在哪几环。

第一环:平台的删除机制不可预测。不少网站对已入库作品存在主动下架机制,与热度、是否入V、读者是否订阅都无关。有些小说首发站找不到,却被笔趣阁等转载站收录,读者尚能"睹其风采";但更多不够热门的作品,根本没有转载站愿意搬运,一旦下架就是彻底消失。

第二环:人工备份的成本被严重低估。一部三百万字的小说动辄上千章节,逐个复制粘贴会消耗大量时间;就算借助浏览器的"另存为",得到的也是夹杂广告、导航、脚本报错的脏页面,几乎不可读。

第三环:常见的抓取工具过不了反爬。如今不少站点会用字体加密、图片替换正文、Shadow DOM 隔离等手段对抗采集,普通的"读取页面源码"思路在第一关就会卡住。

这三环叠加,决定了"随时可读的离线副本"必须由专门工具来完成,而不是靠运气和耐心。

novel-downloader 的解题思路:把每个站点当作一个可插拔的规则文件

作为一个可扩展的通用型小说下载器,novel-downloader 没有采用"一套抓取逻辑打天下"的笨办法,而是把适配能力拆散到src/rules/目录下,按站点类型归档:单页站点、目录翻页站点、需要登录鉴权的特殊站点、以及存在图片防爬的转载站,各自拥有独立的规则文件。想支持新网站,通常只需新建一个规则文件并注册路由,不动核心逻辑。

针对反爬,它的处理也分了三层:

  • 图片文字解码:某些站点把正文汉字替换成图片,脚本按"文件名映射 → 哈希映射 → OCR识别"的顺序依次尝试,前两层靠本地映射表秒级完成,最后一层才动用 PaddleOCR 模型兜底(实现见src/lib/decoders/)。
  • 字体映射:晋江、番茄等站点用自定义字体渲染文字,下载后文档会出现乱码,脚本内置字体匹配表(如src/rules/lib/hongxiuzhao.ts),也可按日志提示手动补齐。
  • Shadow DOM 穿透:针对 closed shadow-root 的现代前端框架,专门实现了穿透查询工具(src/lib/pierceShadow.ts),让内容在"看不见"的组件树里也能被捞出来。

与两种传统做法相比,差异很直观:

方案成品可读性反爬适配章节完整性扩展新站成本
浏览器另存为低,夹杂大量页面杂质需手动翻页不适用
通用爬虫脚本中,需自行清洗弱,遇加密即失败需自写调度每站重写
novel-downloader 小说下载器高,输出TXT与EPUB双格式三层解码+字体映射自动遍历目录与分卷一个规则文件即可

从零到跑通第一次下载的 4 步实操路径

第一步:装好脚本管理器

脚本以油猴脚本形式分发,因此浏览器需要先安装 Tampermonkey、Violentmonkey 或 Greasemonkey 之一。三者任选其一,直接在浏览器扩展商店搜索安装即可,全程无需配置。

第二步:获取并安装脚本

两种方式任选:

  • 直接安装:从脚本分发渠道(如 Greasyfork)一键安装最新版,适合想马上使用的新手。
  • 本地构建:想要源码级掌控,可执行以下命令编译产物:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn run build

构建完成后,把生成的dist/bundle.user.js拖入脚本管理器即可完成安装。

第三步:打开目录页并触发下载

进入任意受支持小说的目录页,网页右上角会出现下载图标,点击即开始。脚本会在后台播放无声音频,防止浏览器休眠机制中断任务;长篇小说等待时间较长,此时可以切到其他标签页继续做自己的事。

第四步:查看进度与产物

下载过程中可通过右下角进度条了解状态,或按 F12 打开控制台查看实时日志。任务完成后会自动产出两个文件:TXT 纯文本(记事本、阅读 App 通吃)和 EPUB(导入任意电子书阅读器即可排版阅读)。

提示:如果打开页面后右上角没有出现下载图标,且该站是单页应用(如长佩、pixiv),按 F5 强制刷新当前页面通常即可解决。

4 个容易被忽略的高价值用法

1. 用自定义筛选函数只下载想要的章节

点击下载前,在控制台定义window.chapterFilter即可按任意规则裁剪章节。比如只保留前 100 章,或只下载某卷、某关键词章节,超长篇分批次下载的常见诉求都能一行函数搞定。

function chapterFilter(chapter) { return chapter.sectionNumber === 1; // 只下载第一卷 } window.chapterFilter = chapterFilter;

2. 用自定义保存参数重塑输出样式

window.saveOptions可以控制章节标题格式、TXT 段落缩进、EPUB 空行清理甚至章节排序。比如把标题统一改成"第x章 xxx"的格式,或者给 TXT 每个自然段前补上缩进空格,让导出的文件更符合个人排版习惯。设置面板中也提供了"自定义下载设置",可调整并行线程数与下载间隔,应对反爬严格的站点。

3. 用完成回调自动收尾

定义window.customFinishCallback,下载完成后脚本会自动执行你的逻辑,例如自动关闭当前标签页——适合深夜挂机批量下载的场景。

4. 用调试模式精准定位问题

在设置面板开启调试模式后,下载生成的 ZIP 内会附带debug.log;若任务卡住没产出任何文件,可开启测试视图复制日志选项卡内容。排查问题时这些信息远比"描述现象"有效。

高频问题速查表

问题结论
下载速度太慢怎么办?设置中提高并行下载线程数(建议 3–5),反爬严格的站点可降到 1–2 并增加下载间隔
下载的章节有乱码或特殊字符?多为站点字体加密,查看日志中[jjwxc-font][fanqie-font]提示并按指引处理
付费章节下载不了?需先在对应网站登录并购买该章节,未购买章节会被直接跳过,这是刻意设计
支持列表里没有我想要的网站?可在项目 issue 区反馈,更欢迎直接贡献规则代码
下载过程中内存占用过高?图片较多的站点(如 Lofter)注意监控内存,或使用筛选函数分次下载

参与这个开源项目,三种方式都欢迎

novel-downloader 的价值不止于"能用",更在于它把站点适配的门槛降到了单个文件。想深度参与,可以从三个入口进入:

  1. 反馈:遇到问题先在支持页面检索是否已有重复 issue,再按模板提交并附上调试日志。
  2. 提交规则:阅读src/rules/下同类站点的实现,继承基础类补全bookParsechapterParse,再在src/router/download.ts注册路由、在src/header.json补充匹配规则即可。
  3. 共建映射数据:图片映射表、字体映射表这类"脏活"数据同样需要社区持续维护,随手提交一份就能帮到很多人。

最后提醒一句:工具负责保存内容,选择权在你。只下载已购买或合法获取的作品、不过度压榨目标站点、不将产物用于商业用途,是让这个生态长期运转的基本默契。

下一次当你喜欢的作品悄然消失时,希望你的硬盘里早已有了一份干净的备份——这就是 novel-downloader 小说下载器存在的全部理由。现在,打开你常逛的小说网站,点一下右上角那个下载图标,离线阅读自由就从这一步开始。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询