小说下载器使用全攻略:三大解码技巧,一键批量保存TXT与EPUB离线书
小说下载器使用全攻略三大解码技巧一键批量保存TXT与EPUB离线书【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader你有没有过这样的经历追了好几年的小说突然打不开页面辛辛苦苦订阅的VIP章节一夜之间全部消失或者网速不稳时翻页卡到怀疑人生在数字阅读时代内容消失的速度远比我们想象得快——起点、晋江上入V已久的小说被下架的例子数不胜数甚至整个网站「上天」的惨剧也时有发生。今天要推荐的这款开源小说下载器novel-downloader正是为了解决这个痛点而生它是一个可扩展的通用型油猴脚本能从100多个国内外小说网站批量抓取章节一键生成TXT文档和EPUB电子书让心爱的故事永远留在你的硬盘里。它到底能帮你做什么简单说这是一位任劳任怨的「私人图书管理员」。你只需打开小说的目录页点击右上角出现的下载图标剩下的工作全部交给它解析章节列表、抓取正文内容、处理图片、自动排版最后打包成一份TXT和一份EPUB交到你手里。最让人放心的是它的出身——这是「404小说文库」项目的组成部分初衷就是抢救那些质量上乘却不够热门、没有被转载网站收录、即将从互联网上彻底消失的作品。对于无登录墙的网站如果你同意它甚至会在下载的同时尝试把书籍页面存档到互联网档案馆给作品多上一道保险。三分钟装好并用起来第一步装个脚本管理器这个下载器以油猴脚本形式分发需要先有一个「宿主」Tampermonkey最流行功能最全Violentmonkey开源免费GreasemonkeyFirefox 用户常用装好管理器后就可以准备脚本本体了。第二步一条命令链完成构建如果你希望拿到最新代码可以克隆仓库自行构建git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建完成后dist目录里会生成bundle.user.js文件把它拖拽进脚本管理器界面即可完成安装。整个过程不依赖任何服务器纯本地运行。第三步打开目录页点一下图标访问任意受支持的小说网站比如笔趣阁、起点、晋江打开小说目录页后右上角就会出现下载图标。点击图标脚本就开始工作右下角会显示实时进度条你也可以按 F12 打开控制台查看每个章节的抓取状态。小提示下载期间脚本会播放一段无声音频这是刻意为之——避免浏览器判定页面「闲置」而进入休眠导致下载中断。听到有声音别慌属于正常现象。第四步收获你的电子书下载完成后脚本会自动保存两份文件一份TXT 文档用记事本或任意阅读器即可打开一份EPUB 电子书推荐用专门的阅读器阅读排版更精美。三层解码方案对付反爬的「连环计」很多网站为了防抓取会把文字替换成图片、套上自定义字体甚至用上 Shadow DOM 这类前端黑科技。这个下载器的聪明之处在于它准备了一套层层递进的解码方案就像开锁匠的三把钥匙解码层级原理适用场景速度文件名映射根据图片文件名直接匹配文字图片文件名有规律可循⚡ 最快哈希匹配下载图片、计算哈希后匹配文件名会变但图片内容不变 中等OCR 识别调用 PaddleOCR 中文模型识别前两层失效的复杂场景 最慢但最准这套逻辑在源码src/lib/decoders/目录下清晰可见FilenameDecoder.ts负责文件名映射HashDecoder.ts负责哈希匹配OCRDecoder.ts兜底。映射表会自动从远端获取并缓存在本地同一本书重复下载时几乎零成本。对于晋江文学城这类使用自定义字体加密的网站脚本还会自动下载字体文件并建立字符映射关系。如果你下载的文档里出现了乱码字符可以打开设置里的「测试视图」查看日志找到以[jjwxc-font]开头的提示配合正则表达式就能把所有字体链接筛出来提交反馈帮助社区更新字体表。进阶玩法用一小段代码定制专属下载只下想下的章节想只保留前100章还是只想收第一卷在点击下载按钮之前按 F12 打开开发者工具在控制台定义chapterFilter函数即可// 只下载前100章 function chapterFilter(chapter) { return chapter.chapterNumber 100; } // 或者只下载第一卷 function chapterFilter(chapter) { return chapter.sectionNumber 1; } // 或者只下载章节名里带「番外」的 function chapterFilter(chapter) { return chapter.chapterName.includes(番外); }自定义排版样式嫌默认排版不够顺眼定义saveOptions对象就能调整章节标题格式和段落样式const saveOptions { getchapterName: (chapter) { if (chapter.chapterName) { return 第${chapter.chapterNumber}章 ${chapter.chapterName}; } return 第${chapter.chapterNumber}章; }, mainStyleText: p { text-indent: 2em; line-height: 1.6; } }; window.saveOptions saveOptions;这些配置是即写即生效的不想每次手动敲也可以单独写一个用户脚本在页面加载时自动注入一劳永逸。完整的示例模板在项目 README 的「附录」里可以直接抄。这些坑我先帮你踩过了关于付费章节想下载 VIP 章节请务必先登录网站账号并确认已购买对应章节。脚本不会帮你破解付费墙——未登录或未购买的章节会被直接跳过这是设计使然请尊重作者版权。关于登录 Token晋江文学城、息壤中文网等站点需要额外填写登录 token 才能正常下载付费内容。晋江可以在脚本设置里点「获取token」按钮自动获取也可以抓包 Android app 的请求把 token 值注入到tokenOptions对象中。息壤则需要抓取请求头里的deviceIdentify和Authorization。填好 token 后下载体验会顺畅很多。关于下载速度部分网站反爬严格比如长佩文学脚本会主动限速大约每分钟只能下 6 章。这时候请耐心等待最好别同时开多个页面并行下载多本书否则容易被封 IP。如果网站突然加了新的反爬手段可以在设置面板调整「并行下载线程数」「下载间隔」等参数来应对。关于单页应用网站长佩文学、pixiv、Lofter 这类单页应用网站如果打开书籍详情页时右上角没出现下载图标不用慌——按一下 F5 刷新页面即可。遇到问题怎么办出问题时先在设置中开启「调试模式」下载生成的 zip 包里会附带debug.log日志文件如果下载卡住没生成任何文件用「测试视图」复制日志内容保存为 txt。记得带上完整日志去项目 issue 页面反馈社区维护者才能快速定位问题。支持哪些网站比你想的多得多下载器的规则引擎把网站分成了几大类每一类都有对应的模板规则类型适用网站特征代表站点onePage单页式目录结构笔趣阁、UU看书网、69书吧twoPage分页式目录结构轻小说文库、18看书special/original需要特殊处理的原创平台起点、晋江、七猫、番茄special/reprint转载类站点西瓜书屋、海棠文化biquge笔趣阁系变体各类笔趣阁镜像从国内大厂到日本轻小说平台小説家になろう、カクヨム、ハーメルン、再到 Lofter、pixiv 这类同人社区覆盖面相当广。全部规则存放在src/rules/目录下按网站特征分门别类想要查看某个站点支持到什么程度翻一翻 README 里的支持列表即可。想给项目添砖加瓦欢迎加入这个下载器能支持的网站越来越多靠的正是社区的力量。给一个新网站写规则其实比想象中简单克隆仓库到本地执行yarn install安装依赖继承BaseRuleClass类实现bookParse解析书籍信息与章节列表和chapterParse解析章节正文两个核心方法模板参考src/rules/onePage/template.ts在src/router/download.ts里添加域名与规则的对应关系在src/header.json的match字段加上站点匹配规则执行yarn run build编译测试无误后提交 PR整个项目用 TypeScript 编写模块化程度很高核心逻辑与站点规则完全分离维护起来很舒服。遇到疑难站点仓库docs/下还有设计文档可以参考比如针对 Cloudflare 挑战与 closed Shadow DOM 的破解思路就写得非常详细。写在最后在内容随时可能消失的互联网时代能有一款工具帮你把喜欢的故事稳稳地握在手里本身就是一种安全感。这款小说下载器不仅能让你批量下载TXT与EPUB离线阅读更承载着一个朴素的愿望让每一部好作品都不因技术限制而湮灭。安装它把你书架上的书都存一份吧——然后如果发现某个网站不支持或者遇到了 bug不妨把 issue 提交给项目甚至亲手写一条规则。你保存的每一本书都可能是在为某个作者的作品延续生命。现在就去试试让这个开源项目成为你的私人数字图书馆吧。【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考