novel-downloader:用油猴脚本把200+站点的小说存成本地TXT和EPUB
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
novel-downloader 是一个开源的小说下载油猴(用户)脚本,装在浏览器里后可自动识别 200 多个小说网站的结构,解析章节正文与图片,一次性输出 TXT 和 EPUB 两种文件。它适合想把收藏小说存成本地文件的读者,也适合想为新网站补充解析规则的开发者。
它解决什么问题
不少网络小说会毫无征兆地从站点消失,已购买的章节在站点关停后同样 404。用 novel-downloader 把整本书存成 TXT 和 EPUB 后,离线文件在网络源消失后依然可读。
通勤时用手机打开站点页面,广告、登录弹窗和网络波动都会打断阅读。把生成的 EPUB 文件放进手机或电子阅读器,就可以在不依赖站点网络的情况下正常读完一本书。
部分站点把正文文字替换成图片,或用自定义字体加密,复制保存出来的全是乱码。脚本按文件名映射、哈希匹配、OCR(光学字符识别)逐级解码图片文字,字体加密站点另有字体匹配机制可用。
从零到跑通
安装脚本管理器novel-downloader 以用户脚本形式运行,需要先给浏览器装一个脚本管理器,Tampermonkey 与 Violentmonkey 均支持。
克隆并构建脚本
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建产物为dist/bundle.user.js,在脚本管理器中导入该文件即完成安装。
打开小说目录页
站点在支持列表内时,页面右上角会出现下载图标,点击即开始解析章节。脚本运行时会播放无声音频,防止后台标签页被浏览器休眠。
核对两种输出文件下载完成后自动保存同名 TXT 与 EPUB,右下角进度条显示当前进度,按 F12 打开控制台可查看逐章解析状态。
核心能力解析
它支持大量站点的原因是每个网站都有独立解析规则。src/router/download.ts按域名把当前页面路由到对应规则,src/rules/下各站点继承 BaseRuleClass 并实现 bookParse 与 chapterParse,再按页面结构分为 onePage(单页加载全部章节)、twoPage(目录与正文分页)与 special(接口请求)目录,新增站点只需补一个规则文件和src/header.json中的匹配项。
正文是图片时它不只保存图片,而是还原文字。src/lib/decoders/的解码器先按图片文件名匹配文字,再对下载的图片计算哈希比对映射表,最后调用 PaddleOCR 中文模型做光学字符识别;前两步速度快,OCR 最准但最慢,只作为兜底。
只下载部分章节、修改章节标题格式、调整正文缩进,都可以在不改源码的前提下完成。点击下载前在页面定义window.chapterFilter或window.saveOptions,脚本运行时会读取它们,例如只保留前 100 章:
window.chapterFilter = (chapter) => chapter.chapterNumber <= 100;常见问题
Q:付费章节没有下载?A:付费章节需要先登录对应站点并确认已购买,未登录或未购买的章节在解析时会被直接跳过。可对照 README 站点支持表中的“付费章节”一列,确认该站点是否支持付费章节下载。
Q:下载出来的文字是乱码?A:这通常是站点用自定义字体加密了正文(晋江、番茄等常见)。在设置中打开调试模式,通过测试视图或按 F12 查看控制台里以 [jjwxc-font]、[fanqie-font] 开头的提示,再按 README 说明收集字体链接提交匹配更新。
Q:页面右上角没有出现下载图标?A:可能是站点不在支持列表,也可能是长佩、pixiv 这类单页应用的目录尚未渲染完成。先按 F5 重新加载页面,仍未出现时再对照 README 的站点支持列表确认域名是否覆盖。
Q:下载卡住,没有生成文件?A:先按 F12 检查控制台有无报错,并在设置中开启调试模式;若已生成 zip,打开其中的debug.log文件;完全没生成文件时,启用测试视图并把日志选项卡的内容完整复制保存下来反馈。
Q:章节多,下载耗时过长?A:设置中可调整并行下载线程数与下载间隔,脚本已按站点预设了合适的默认值。反爬严格的站点(长佩约每分钟 6 章)建议保持默认值,且不要多开页面同时下载同一本书。
写在最后
适合想把浏览器里固定的小说收藏存成本地文件的人,也适合经常遇到资源失效、需要离线备份的场景;不适合解析未收录的站点,也无法绕过登录和付费墙。首次整本下载前建议先测试前两章,确认正文与图片正常后再跑全本。代码以 AGPL-3.0 协议开源,站点规则的写法可以直接在src/rules/目录中查看参考。
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考