如何用一款开源工具永久保存你喜爱的网络小说?
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
在数字阅读时代,我们常常面临一个令人沮丧的现实:今天还在追更的小说,明天可能就因为各种原因从网站上消失。无论是网络故障、服务器问题,还是内容下架,这些意外都会让我们的阅读记忆戛然而止。novel-downloader正是为解决这一痛点而生——它是一款基于TypeScript开发的油猴脚本,能够从100多个小说网站中智能抓取内容,并将其整理成TXT和EPUB格式,让你随时随地都能重温心爱的作品。
数字阅读时代的守护者
想象一下这样的场景:深夜追更一本引人入胜的小说,正当情节达到高潮时,页面突然显示"404 Not Found"。这种经历对于热爱阅读的人来说无疑是沉重的打击。novel-downloader的设计初衷就是要成为数字阅读的守护者,确保每一部优秀作品都能被永久保存下来。
这款工具不仅仅是一个简单的下载器,它更像是一位专业的数字图书管理员。当你访问支持的小说网站时,右上角会出现一个下载图标,点击它,novel-downloader就会开始工作。它会自动分析页面结构,识别章节列表和正文内容,然后智能分批下载所有章节,最终生成整洁的电子书文件。
智能解析技术:应对复杂网页结构
novel-downloader的强大之处在于其智能解析能力。它采用模块化架构,所有网站规则都存放在src/rules/目录下,按照网站类型进行分类管理。这种设计让工具具备了出色的扩展性和适应性。
多类型网站支持策略
项目根据网站结构特点,将规则分为三大类:
- 单页式网站处理:对于章节内容集中在一个页面上的网站,使用
onePage/目录下的规则 - 分页式网站处理:对于需要翻页查看章节的网站,使用
twoPage/目录下的规则 - 特殊平台处理:针对需要特殊处理的知名平台,如起点、晋江等,使用
special/目录下的规则
技术突破:破解网站保护机制
许多小说网站为了保护内容,采用了各种技术手段。novel-downloader针对这些挑战提供了专业解决方案:
图片文字解码系统
部分网站将文字替换为图片来防止复制。novel-downloader采用三级解码方案:
- 文件名映射解码:通过图片文件名直接匹配文字,速度最快
- 哈希值匹配解码:计算图片哈希值进行识别,平衡速度与准确性
- OCR光学识别:使用PaddleOCR模型识别图片中的文字,准确度最高
字体加密破解技术
晋江文学城等平台使用自定义字体加密技术。脚本会自动下载字体文件并建立映射关系,确保文字正确显示。在src/rules/lib/目录下,专门的字体解码模块处理这类复杂情况。
付费内容访问机制
对于需要登录的付费章节,脚本会利用你的登录状态进行访问。只要确保已登录网站账户并购买了相关章节,novel-downloader就能顺利获取内容。
novel-downloader正在从小说网站抓取章节链接,开发者工具显示详细的下载状态日志
快速上手:三步骤开启离线阅读
第一步:安装浏览器脚本管理器
novel-downloader作为油猴脚本运行,需要先在浏览器中安装脚本管理器。推荐选择以下任一工具:
- Tampermonkey:功能最全面,用户基数最大
- Violentmonkey:开源免费,轻量级选择
- Greasemonkey:专为Firefox设计,兼容性优秀
第二步:获取并安装脚本
你可以通过以下命令从源码构建脚本:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建完成后,在dist目录中找到bundle.user.js文件,将其拖拽到浏览器中即可完成安装。
第三步:开始使用
安装完成后,访问任何支持的小说网站。当你打开小说目录页时,网页右上角会出现下载图标。点击图标,右下角会显示下载进度条,按下F12可以查看详细状态信息。
个性化定制:打造专属阅读体验
novel-downloader提供了丰富的定制选项,让你可以根据个人喜好调整下载行为。
章节筛选功能
如果你只想下载小说的特定部分,可以在开始下载前定义筛选函数:
// 只下载前50章 function chapterFilter(chapter) { return chapter.chapterNumber <= 50; } // 只下载包含特定关键词的章节 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;下载参数优化
在设置面板中,你可以调整并行下载线程数、下载间隔等参数,以适应不同网站的访问限制。一般来说,每个网站都有合适的默认值,但在特殊情况下,你可以根据需要进行调整。
novel-downloader生成的HTML格式小说内容,保留了原始网页的排版和格式
全面覆盖:支持100+小说平台
novel-downloader支持的小说网站数量令人印象深刻,涵盖了国内外主流平台:
国内知名文学网站
- 起点中文网:支持付费章节和VIP内容
- 晋江文学城:处理字体加密,支持付费阅读
- 七猫中文网:完整的内容抓取支持
- 长佩文学:VIP章节完整支持
- 海棠文化线上文学城:专业内容处理
特色内容平台
- 息壤中文网:原创文学平台支持
- 有毒小说网:特色内容处理
- 独阅读:小众平台兼容
国际平台支持
- カクヨム:日本小说平台
- pixiv小说:创作者社区内容
- Lofter:图文混合内容处理
转载资源站点
- 笔趣阁系列:多个镜像站点支持
- UU看书网:海量免费资源
- 星空中文:热门转载站点
完整的支持列表可以在项目的src/rules/目录中查看,每个文件对应一个网站的解析规则。这种模块化设计让novel-downloader能够轻松扩展支持更多网站。
novel-downloader生成的TXT格式小说文件,保留了完整的章节结构和文本内容
技术实现:架构设计与数据处理
模块化架构设计
novel-downloader采用清晰的模块化架构,主要模块包括:
- 规则引擎:位于
src/rules/目录,负责不同网站的解析逻辑 - 核心处理:
src/main/目录下的Book、Chapter、Attachment类 - 下载管理:
src/router/download.ts处理下载流程 - 输出生成:
src/save/目录下的各种格式输出模块
智能数据处理流程
工具的工作流程经过精心设计:
- 页面分析:自动识别页面结构,提取章节信息
- 内容抓取:智能分批下载,避免触发反爬机制
- 格式清理:移除广告、格式化文本、处理特殊编码
- 文件生成:同时生成TXT和EPUB两种格式
- 自动保存:浏览器自动下载生成的文件
错误处理与容错机制
novel-downloader内置了完善的错误处理机制:
- 网络异常重试:自动重试失败的下载任务
- 内容验证:检查下载内容的完整性和正确性
- 进度保存:支持断点续传,避免重复下载
novel-downloader能够处理包含图片的小说内容,确保图文混合内容的完整保存
常见问题与解决方案
下载过程中断怎么办?
如果下载卡住,可以按下F12打开开发者工具,查看控制台中的错误信息。常见原因包括网络问题或网站反爬机制触发。你可以尝试降低并行下载线程数,或者稍后再试。
文件出现乱码如何解决?
某些网站使用特殊编码或字体。novel-downloader会自动处理大部分情况,但如果遇到问题,可以尝试在设置中启用调试模式,查看详细的错误信息。
脚本在某些网站上不工作?
首先确认该网站是否在支持列表中。如果支持但脚本不工作,可能是网站更新了页面结构。你可以参考项目文档中的开发指南,自己添加规则或提交问题报告。
开源贡献与社区参与
novel-downloader是一个开源项目,欢迎开发者贡献代码。如果你发现某个网站不受支持,可以参考项目文档,在src/rules/目录下创建新的规则文件。
开发流程
- 克隆项目到本地
- 安装依赖:
yarn install - 继承
BaseRuleClass类,实现bookParse、chapterParse方法 - 在
router/download.ts中添加相应选择规则 - 在
header.json文件的match字段添加匹配规则 - 运行
yarn run build编译生成最终脚本
代码质量保证
项目采用严格的代码质量控制:
- 使用TypeScript确保类型安全
- 代码风格统一规范
- 完善的测试覆盖
版权声明与合理使用
novel-downloader旨在帮助读者更好地管理和阅读已拥有的数字内容。请尊重作者版权,仅下载你已购买或有权阅读的内容。对于付费章节,请确保已登录相应账户并购买了相关章节。
这个工具让每一本好作品都能被更多人欣赏和保存,让优质的内容不会因为技术限制而消失。在数字阅读时代,我们需要这样的工具来保护我们的阅读记忆。
开始你的离线阅读之旅
novel-downloader不仅仅是一个下载工具,它是阅读爱好者的得力助手,是数字时代的图书管理员,更是对抗"404"的守护者。无论你是想要收藏经典作品,还是需要离线阅读方便通勤,这款工具都能满足你的需求。
现在就开始行动:
- 安装脚本管理器
- 获取novel-downloader脚本
- 访问你喜欢的小说网站
- 点击下载按钮,开始享受离线阅读的乐趣!
让每一本好作品都能陪伴你走过每一个美好时光。在数字阅读的世界里,novel-downloader为你保驾护航,确保精彩永不消失。
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考