3步搞定100+网站小说批量下载:novel-downloader 完整指南
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
列车钻了隧道,你追更的小说卡在最后一章,刷新几次页面全是白屏。更糟的是,已经买过的书某天可能悄悄从网站上消失。小说下载器 novel-downloader 能把整本小说一次性批量存成 TXT 和 EPUB,断网也能读。
项目速览
一个以浏览器油猴脚本形式实现的开源小说下载器:打开支持网站的目录页,点一下就能批量抓取整本书,双格式输出 TXT 和 EPUB。
- 📚覆盖 100+ 网站:起点、晋江、刺猬猫、SF 轻小说,以及 Kakuyomu、小説家になろう 等海外站,笔趣阁系转载站也都有。
- 🔧文字三层解码:按文件名映射、图片哈希匹配、OCR 识别的顺序兜底,另有字体解密;网站把文字变成图片或用字体加密,拿到的正文照样能读。
- ⚙️想下哪些下哪些:可以指定只抓部分章节、自定义章节标题格式;付费章节只在已登录且已购买时才下载。
快速上手
本质是油猴脚本,不用装服务端,不用部署,三步完成:
- 装脚本管理器:Tampermonkey(Chrome/Edge)、Violentmonkey 或 Greasemonkey(Firefox)任选其一,在浏览器扩展商店安装。
- 拿到脚本文件:把仓库克隆到本地编译。
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader && yarn install && yarn build编译完成后在 dist 目录取到 bundle.user.js 文件。
- 导入即用:在脚本管理器里新建脚本,把文件内容粘贴进去(或直接导入该文件)。之后访问支持网站的目录页,页面右上角出现下载图标就说明已就绪。
核心功能详解
一键批量下载
打开目录页后,脚本自动识别网站并解析全部章节,点击页面上方的下载图标就开始并发抓取,右下角进度条实时更新,完成后自动保存 TXT 和 EPUB 两个文件。下载期间会播放一段无声音频,防止后台页面被浏览器休眠。各站点的解析逻辑都放在 src/rules/ 目录,按单页、多页、特殊处理三类分目录管理。
批量下载过程中,可在控制台逐章查看进度,文件保存完成即可使用
图片文字三层解码
有些网站把正文文字换成图片来阻止复制。脚本按顺序尝试:先用图片文件名直接匹配文字,最快;再下载图片算哈希值对照匹配表;最后才调用 PaddleOCR 中文模型做图像识别。匹配表和模型都会缓存在浏览器本地存储,下次使用不用重新下载。
正文内混排的图片章节,图片和文字会被完整抓取
字体解密与章节筛选
晋江文学城、番茄小说使用自定义字体,屏幕上的字符和真实文字不对应。脚本内置了字体匹配逻辑,保证存下来的文字不乱码。如果只想下载部分章节,可以给页面传入一个筛选函数,由它决定"每章是否保留",写法见进阶一节。
动手实操
- 打开支持网站的书籍目录页,等页面上方出现下载图标。
- 点击图标,脚本解析完书籍信息和目录后自动开始,期间不要关闭页面。
- 盯着右下角进度条,或按 F12 打开控制台看日志,实时掌握抓取状态。
- 进度走完后,浏览器自动保存一个 TXT 纯文本和一个 EPUB 电子书。
- 用文本编辑器打开 TXT 核对卷章结构,或把 EPUB 导入 Calibre、Kindle 阅读器。
目录页加载完成后,点击上方图标即可开始整本下载
适用场景
| 场景 | 痛点 | 怎么玩 |
|---|---|---|
| 离线阅读 | 地铁、旅行信号差,章节加载不出 | 有网时批量下载,TXT/EPUB 丢进手机随时读 |
| 永久备份 | 作品因版权下架,转载站也删了 | 把免费或已购买的书下载存盘,建个人书库 |
| 文本分析 | 逐章复制粘贴繁琐、格式乱 | 统一输出 TXT,直接做字数统计和文本处理 |
| 多设备阅读 | 手机、平板、电子阅读器来回切 | 本地阅读器直接读下载好的文件,完全不依赖网络 |
常见问题排查
- 下载图标不出现→ 原因:网站不在支持列表,或单页应用未渲染完成 → 解决:先确认站点是否支持;pixiv、长佩这类单页应用先按 F5 刷新一次再操作。
- 下载很慢或中断→ 原因:网站反爬严格,并发过高被限流 → 解决:在设置里调低并行下载线程数、加大下载间隔,别同时开多本书。
- 正文出现乱码或怪字符→ 原因:字体加密未匹配 → 解决:在设置中开启调试模式,到日志里找以
[jjwxc-font]或[fanqie-font]开头的提示,按提示补齐字体匹配信息。 - 付费章节缺失→ 原因:未登录或章节未购买 → 解决:先登录对应网站账号并确保章节已购买,再重新下载;未购买的章节会被直接跳过。
进阶与自定义
想只下载部分章节时,点击运行前按 F12 打开开发者工具,在页面 window 上建一个 chapterFilter 函数,返回 true 的章节才会被保留。比如只下前 100 章:
function chapterFilter(chapter) { return chapter.chapterNumber <= 100; }一句话:章号小于等于 100 的才保留,也可以改成按卷号判断,或按章节名是否包含某个关键词来筛。
想改输出格式,则建一个 saveOptions 对象挂到 window 上,比如把章节标题统一成"第 X 章 + 原章节名":
const saveOptions = { getchapterName: (c) => `第${c.chapterNumber}章 ${c.chapterName || ""}`, }; window.saveOptions = saveOptions;保存后每章的标题都按新格式生成,记得在设置面板勾选"启用自定义下载设置",参数才会对后续所有下载生效。
下载好的 TXT 用文本编辑器打开,卷、章层级一目了然
novel-downloader 是一个三分钟上手的开源小说下载器。它覆盖 100+ 网站,一键输出 TXT 和 EPUB,还备有三层解码与字体解密,专治把文字变成图片、加密字体的网站。章节筛选和输出定制都留好了口子,基础用完后也不至于浪费。现在就去找一本你追更的书,打开它的目录页,完成第一次下载。请只下载你有权阅读的内容,备份留作自己阅读,别用于传播。
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考