公司动态
小说下载器实测指南:从100+网站批量下载小说并一键转EPUB
小说下载器实测指南从100网站批量下载小说并一键转EPUB【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloadernovel-downloader 是一款开源的通用型小说下载器以油猴脚本形式运行在浏览器中支持国内外一百多个小说网站下载完成后自动生成 TXT 与 EPUB 两种格式专门解决想保存的小说随时可能消失的痛点。本文基于实测体验从安装、使用、解码原理、进阶定制到常见坑位完整讲清楚这款小说下载器的全部玩法。装它之前先看看它能做什么简单说当你打开一本小说的目录页页面右上角会出现一个下载图标点一下脚本就会自动解析全部章节、抓取正文最后把整本书打包成文件送到你的下载目录。它解决的核心问题有三个内容永久化起点、晋江等平台的付费小说可能因各种原因下架下载到本地等于给作品上了双保险多站统一入口不用为每个网站单独找工具一个脚本覆盖主站、小众站、转载站格式开箱即用TXT 适合记事本和手机阅读器EPUB 适合专业阅读器两种格式一次拿全。这套流程的背后是脚本针对不同网站结构定制的规则在起作用。后面会专门讲到它如何处理图片文字、字体加密这类硬骨头。四步跑通首次下载整个上手过程大约五分钟按下面顺序操作即可。第一步装脚本管理器。在浏览器扩展商店安装 Tampermonkey、Violentmonkey 或 Greasemonkey 中的任意一个前两者兼容性最好推荐优先尝试。第二步获取并构建脚本。项目源码托管在 GitCode克隆后构建一次git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建完成后把dist/bundle.user.js文件拖入脚本管理器的安装界面即可完成安装。第三步打开目录页触发下载。访问任意受支持的网站进入小说目录页点右上角的下载图标开始任务。此时页面右下角会出现进度条耐心等待即可。第四步查看结果。下载完成后浏览器会自动下载一个 TXT 文档和一个 EPUB 文件直接用本地阅读软件打开就行。几个使用中的细节值得提前知道执行下载时脚本会播放一段无声音频这是为了保证后台任务不被浏览器休眠属正常现象章节很多时等待时间较长可按 F12 打开控制台实时查看下载状态在设置中启用调试模式后日志会输出更详细的信息便于排查问题。它凭什么能下载别人下不了的内容很多小说网站为了防止抓取会用图片替换文字、用自定义字体加密正文。novel-downloader 针对这些反爬手段设计了专门的解码方案。三层解码把图片里的字捞回来当网站把文字替换成图片时典型如西瓜书屋脚本会依次尝试三种方案命中即停解码层级处理方式速度与适用场景文件名映射根据图片文件名直接匹配文字最快适合简单图片替换哈希匹配下载图片后计算哈希值再比对较快适合文件名被改写的情况OCR 识别调用 PaddleOCR 中文识别模型最慢但最准兜底方案OCR 模型文件首次使用时才会下载之后缓存在脚本管理器的本地存储中不会反复占用流量。需要说明的是OCR 也无法保证 100% 准确率它只是穷尽前两种方案之后的最后手段。字体加密与 Token付费平台的定制服务晋江文学城和番茄小说使用自定义字体加密正文下载后可能出现乱码。遇到这种情况先打开设置里的测试视图查看日志日志中以[jjwxc-font]或[fanqie-font]开头的提示就是字体匹配信息按提示提交更新即可解决。部分网站如晋江还需要手动注入登录 Token 才能下载付费章节常见做法是通过抓包工具从 Android App 中获取 token再写一个极简油猴脚本注入window.tokenOptions。具体抓包教程在项目 README 的 Token 填写一节有详细说明。务必记住付费章节必须先登录对应网站账户并完成购买未登录或未购买的付费章节会被直接跳过。单页应用网站的特殊处理长佩文学、pixiv 这类单页应用网站如果打开书籍详情页时右上角没有出现下载图标按 F5 刷新页面即可。ESJ 网站下载 EPUB 失败时则需要在开发者工具的网络面板中屏蔽core.js请求后重试。老手进阶把下载器调教成你想要的样子脚本在设置面板中提供了三个下载参数用来适配不同网站的反爬强度参数作用说明并行下载线程数同时下载的章节数量必须为大于 0 的整数下载间隔每章下载后的间隔时间毫秒仅在并行线程数为 1 时生效最大下载间隔两章之间的最大间隔时间毫秒同样仅在串行模式下生效每个网站都有预设的合理数值一般无需改动只有当网站新增反爬检测时才需要手动调整。只下载想要的章节在控制台向window注入一个chapterFilter函数就能对章节进行过滤。以下代码只下载前 100 章function chapterFilter(chapter) { return chapter.chapterNumber 100; } window.chapterFilter chapterFilter;chapter对象上还带有sectionNumber卷号、chapterName章节名、isVIP等字段你可以按卷下载、按关键词筛选甚至只保留 VIP 章节。自定义输出排版注入window.saveOptions对象即可修改导出文件的样式与标题格式。例如把章节标题统一为第N章 XXXconst saveOptions { getchapterName: (chapter) { if (chapter.chapterName) { return 第${chapter.chapterNumber}章 ${chapter.chapterName}; } return 第${chapter.chapterNumber}章; }, }; window.saveOptions saveOptions;排版方面mainStyleText可以替换 EPUB 的正文 CSSgenChapterText可以控制 TXT 的段落格式chapterSort甚至能实现章节倒序排列。如果你有固定的偏好还可以写成独立的用户脚本自动注入一劳永逸。下载完成自动收尾注入customFinishCallback回调函数可以在下载完成并生成 ZIP 后自动执行动作例如下载完直接关闭页面function customFinishCallback(book) { window.close(); } window.customFinishCallback customFinishCallback;输出效果TXT 与 EPUB 双格式并存下载完成后你会同时拿到两个文件TXT 用于记事本等轻量阅读场景EPUB 用于支持目录、书签的专业阅读器。章节顺序、卷名结构都会按原文保留。对于图文混排的小说如 Lofter 博文脚本会连带下载正文中的图片但也会因此占用较多内存脚本设定了 800MB 的内存上限图片特别多的博客建议用筛选函数分多次下载。开发者视角为新网站添加支持有多简单项目采用规则引擎架构所有站点适配代码集中在src/rules/目录下按网站类型分成 onePage单页目录、twoPage分页目录、special特殊平台、biquge笔趣阁系列、mbtxt 等类别。新增一个网站的支持只需三步继承BaseRuleClass类实现bookParse解析目录和chapterParse解析正文两个方法在src/router/download.ts中添加对应域名的选择规则在src/header.json的 match 字段里补充站点匹配然后yarn run build重新编译。对普通用户来说这意味着网站的适配更新非常频繁对开发者来说这可能是给自己喜欢的小站添加支持的最快路径。用之前必须知道的几件事最后列一份避坑清单都是实际使用中容易踩到的点合理使用请仅下载已购买或有权阅读的内容尊重作者版权调试日志遇到问题先在设置中启用调试模式下载生成的 ZIP 里会包含debug.log提交反馈时附上它能大幅加快定位速度广告屏蔽器使用广告屏蔽插件可能影响脚本在部分网站如 Lofter的工作存档功能脚本属于 404 小说文库项目的一部分在征得同意后会尝试将书籍页面存档至互联网档案馆此功能可随时关闭不影响下载主流程。装一个小说下载器本质上是在为你的阅读记忆上保险。当某天发现收藏夹里那本书悄然消失时你会庆幸自己在它还在的时候做了一次保存。现在就可以去试试把第一本书下载到本地整个过程五分钟都用不了。【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考