百余个站点小说一键离线下载:novel-downloader 脚本保姆级上手指南
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
深夜刷新页面,追了两年的小说突然变成"内容已删除",这种绝望相信很多读者都体会过。而通用型小说下载器 novel-downloader 的思路很直接:打开目录页点一下图标,它就自动解析整本书的章节结构,把离线可读的 TXT 和 EPUB 存进你的硬盘——书不再看平台的脸色。📚
小说下载器的最简安装步骤
全程不用写一行代码,三步走完:
- 装一个脚本管理器:Tampermonkey、Violentmonkey、Greasemonkey 三选一,浏览器扩展商店里都有;
- 添加本脚本:在管理器的"添加新脚本"流程里安装 novel-downloader;
- 确认生效:随便打开一个受支持站点的目录页,页面右上角出现下载图标,说明安装成功。
脚本支持的书籍目录页:页面右上角会出现下载入口,这是一键下载的起点
开发者捷径:从源码构建脚本
想体验未发布的新功能,或者打算给项目提代码,可以克隆源码自行构建:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn run build构建完成后,把产物放进脚本管理器即可完成安装;如果希望边改代码边验证,运行yarn dev进入本地调试模式。
三步拿到第一本离线小说
装好之后,操作可以闭着眼完成:
- 打开想收藏作品的目录页;
- 点右上角下载图标,脚本会并行解析整本书的章节;
- 结束后浏览器自动存下一个TXT和一个EPUB文件(另附章节源文件打包的 ZIP),打开即读。
上半部分是解析出的章节列表,下半部分是下载任务的实时执行日志,从解析到存盘一目了然
小贴士:下载过程中脚本会播放一段无声声音,这是为了不让浏览器把后台任务休眠,属于正常现象。进度可随时看右下角进度条。
小说下载器的能力全景
相比"复制粘贴 + 截图存档"的老办法,差距来自它的模块化设计:每个受支持的站点都对应一套独立解析规则,加站点就像往对应文件夹里放一个新文件。核心能力一览:
| 能力维度 | 内容 | 说明 |
|---|---|---|
| 脚本管理器 | Tampermonkey / Violentmonkey / Greasemonkey | 主流管理器均可运行 |
| 站点覆盖 | 百余个站点 | 涵盖国内原创、轻小说、海外站与转载资源站 |
| 输出格式 | TXT + EPUB(附 ZIP) | TXT 用文本编辑器读,EPUB 用任意阅读器 |
| 付费章节 | 需登录且已购买 | 未购买的章节直接跳过,属有意设计 |
| 防爬解码 | 图片化正文三层解码 | 文件名映射 → 哈希映射 → OCR 识别,全自动 |
| 调试手段 | 右下角进度条 + F12 控制台日志 | 设置里开调试模式可得到更完整日志 |
进阶玩法:把下载器调成你的私人图书管理员
用筛选函数圈出想存的章节
解决什么问题:超长篇动辄上千章,全量下载慢、占空间,中途翻车还得重来。怎么开启:点运行按钮之前,按 F12 打开开发者工具,在window下定义chapterFilter函数。例如只存前 100 章:
function chapterFilter(chapter) { return chapter.chapterNumber <= 100; }注意什么:也可以按卷(chapter.sectionNumber)或标题关键词圈选,但务必在开始下载前定义好。
用自定义保存参数改造输出样式
解决什么问题:默认章节标题不合口味、想改成"第x章 xxx"格式,或想删掉 EPUB 里的空行。怎么开启:同样在window下挂一个saveOptions对象,标题格式、段落样式都能动:
const saveOptions = { getchapterName: (chapter) => `第${chapter.chapterNumber}章 ${chapter.chapterName}` }; window.saveOptions = saveOptions;注意什么:参数长期固定时,可以写成用户脚本自动注入,省去每次手工粘贴。
用完成回调自动收尾
解决什么问题:批量下载完懒得手动关标签页,或想触发自己的后续处理。怎么开启:定义customFinishCallback,文件生成后脚本会自动调用它:
window.customFinishCallback = function () { window.close(); };注意什么:回调在 ZIP 文件生成之后执行,依赖"文件已落地"的时机。
三层解码,专治"图片化"正文
解决什么问题:个别站点(如西瓜书屋)把正文文字替换成图片,直接复制只得到一堆图片。怎么运作:无需手工干预——脚本先拿图片文件名匹配文字,不行再下载图片算哈希匹配,两者都失败才动用 PaddleOCR 的OCR 识别兜底。注意什么:OCR 模型首次使用会自动下载并缓存到本地,但识别并不保证 100% 准确。
下载后正文与插图一并保留,还原原站的混排阅读体验
避坑指南:五句实战经验
- 下载卡住且没生成任何文件→ 在设置里开调试模式,按 F12 看实时状态;已生成 ZIP 的话,先查里面的
debug.log。 - 下载后出现乱码或异常字符→ 多半是字体映射缺失(晋江文学城、番茄小说最常见),在日志里找
[jjwxc-font]或[fanqie-font]开头的提示,按提示处理。 - 反爬严格的站点速度很慢→ 长佩文学每分钟约 6 章属站点限制,耐心等即可,别多开页面同时下多本。
- 图片多的站点内存吃紧→ 比如 Lofter 连插图一起下,脚本内存上限约 800MB,用筛选函数分次下载更稳。
- VIP 章节被跳过→ 这是有意设计:登录账号并确认已购买后才能下载。
常见疑问:新手最容易卡住的五个问题
Q:下载时脚本播放无声声音,正常吗?A:正常,作用是防止浏览器把后台任务休眠。进度看右下角进度条,细节看 F12 控制台。
Q:怎么判断一个站点支不支持?A:打开书籍目录页,右上角出现下载图标就支持;没出现则暂不支持,可去项目支持页提交 issue 提需求。
Q:想支持的新网站,能自己动手加吗?A:可以。项目是模块化的,在src/rules/下新增规则文件、实现解析方法并在路由登记即可;不会写代码也可直接提 issue 请求。
Q:下载速度偏慢怎么处理?A:先尝试把设置里的并行下载线程数提到 3~5;反爬严格的站点反而应降到 1~2 并加大下载间隔。
Q:下载完成后会生成哪些文件?A:TXT、EPUB 外加一个 ZIP。TXT 用记事本等软件阅读,EPUB 用阅读器打开,ZIP 可留档原始章节页面。
下载完成的 TXT 文件:卷、章结构完整保留,可直接阅读或二次编辑
开始搭建你的私人离线书库
打开浏览器,装好脚本管理器,按上面的步骤把最想留住的那本书带回本地——无论是建一座永不 404 的书库、把它当油猴脚本工程化的学习教材,还是为新站点写一条规则回馈项目,都从这一次点击下载开始。
合规提醒:请只下载已购买或合法获取的内容,尊重创作者劳动,避免给目标站点造成过大访问压力;工具的价值在于合理使用,让下载器做阅读体验的助手,而不是绕过正版的捷径。
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考