如何轻松保存你喜欢的网络小说:novel-downloader使用指南
如何轻松保存你喜欢的网络小说:novel-downloader使用指南
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
在数字阅读时代,你是否遇到过这样的烦恼:收藏的小说突然从网站上消失,付费章节无法离线阅读,或者网络不稳定时无法畅快阅读?novel-downloader正是为解决这些痛点而生的开源小说下载工具。它能从超过100个小说网站智能抓取内容,自动转换为TXT和EPUB格式,让你随时随地享受离线阅读的自由。
为什么你需要一个小说下载器?
网络世界充满变数,许多优秀的小说作品可能因为网站关闭、内容下架或版权变动而无法访问。即使你已经购买了付费章节,一旦网站出现问题,这些内容也可能永远消失。novel-downloader的目标就是成为你的数字图书馆管理员,帮你保存那些珍贵的文字资源。
这款工具特别适合那些想要离线阅读、备份已购买内容、或者担心小说突然消失的读者。它支持从起点中文网、晋江文学城、七猫中文网等主流平台,到笔趣阁、UU看书网等转载网站,再到カクヨム、小説家になろう等国外平台,覆盖了大部分热门小说网站。
五分钟快速上手:从安装到下载
第一步:准备工作
要使用novel-downloader,你首先需要一个浏览器脚本管理器。目前主流的脚本管理器有:
- Tampermonkey:最流行的选择,支持Chrome、Firefox、Edge等主流浏览器
- Violentmonkey:开源免费的优秀替代品
- Greasemonkey:Firefox专用版本
安装脚本管理器后,你需要获取novel-downloader脚本。最简单的方法是直接从项目页面获取最新版本,或者如果你有开发环境,可以克隆仓库自行构建:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建完成后,在dist目录中找到bundle.user.js文件,直接拖拽到你的脚本管理器界面完成安装。
第二步:开始下载小说
安装完成后,访问任何支持的小说网站,当你打开小说目录页时,网页右上角会出现下载图标。点击这个图标,脚本就会开始自动抓取小说内容。
下载过程中,页面右下角会显示进度条,让你随时了解下载状态。如果遇到问题,你可以按下F12打开开发者工具,在控制台查看详细的状态信息和错误日志。
novel-downloader智能识别小说目录页面,展示完整的作品结构和章节导航
第三步:享受离线阅读
下载完成后,脚本会自动生成两个文件:TXT文档和EPUB文件。TXT文件可以用任何文本编辑器打开,适合快速浏览;EPUB文件则是标准的电子书格式,可以在手机、平板或电子书阅读器上完美显示。
novel-downloader解析的小说正文页面,展示工具提取的完整文本内容和排版格式
核心技术:智能识别与防反爬处理
多级网站适配系统
novel-downloader采用模块化的规则引擎设计,针对不同类型的网站采用不同的解析策略。项目中的src/rules/目录包含了完整的规则实现,分为几个主要类别:
- 单页模式:适用于章节列表在同一页面的网站,如起点、晋江等
- 多页模式:适用于章节分页显示的网站
- 特殊处理:针对有特殊加密或反爬机制的网站
每个规则文件都专门针对特定网站的特点进行优化,确保最高的抓取成功率。
三层图片文字识别技术
一些网站为了防爬虫,会将文字替换为图片。novel-downloader采用创新的三级解码方案来解决这个问题:
- 文件名映射:首先尝试根据图片文件名直接匹配文字,这是最快的方法
- 哈希匹配:如果文件名匹配失败,就下载图片并计算哈希值进行匹配
- OCR识别:前两种方法都失败时,使用PaddleOCR中文识别模型进行识别
这种分层处理策略既保证了效率,又确保了识别的准确性。首次使用OCR功能时,脚本会自动下载PaddleOCR模型文件,保存在本地供后续使用。
字体加密自动处理
晋江文学城等网站使用自定义字体加密文字显示。novel-downloader能够自动下载字体文件并建立映射关系,确保下载的内容文字正确显示。如果遇到乱码问题,可以在设置中启用调试模式,按照提示信息提交字体匹配请求。
个性化定制:让下载更符合你的需求
智能章节筛选
如果你只想下载小说的特定部分,可以在下载前定义筛选函数。这特别适合只想下载特定卷章或包含特定关键词的章节:
// 只下载前50章 function chapterFilter(chapter) { return chapter.chapterNumber <= 50; } // 只下载包含"冒险"关键词的章节 function chapterFilter(chapter) { return chapter.chapterName.includes("冒险"); } // 只下载第一卷内容 function chapterFilter(chapter) { return chapter.sectionNumber === 1; }自定义输出格式
你可以完全控制生成文件的样式和格式,让下载的小说符合你的阅读习惯:
const saveOptions = { // 自定义章节标题格式 getchapterName: (chapter) => { return `第${chapter.chapterNumber}章 ${chapter.chapterName || ""}`; }, // 自定义CSS样式 mainStyleText: `p { text-indent: 2em; line-height: 1.6; margin: 0.5em 0; }`, // 删除EPUB中的空行 genChapterEpub: (contentXHTML) => { return contentXHTML.replaceAll("<p><br /></p>", "") .replaceAll("<p><br/></p>", ""); } };自动注入配置
如果你总是使用相同的自定义设置,可以创建一个独立的用户脚本自动注入配置:
// ==UserScript== // @name Noveldownloader 自定义配置 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 自动注入 novel-downloader 配置 // @author 你的名字 // @match *://*/* // @grant none // ==/UserScript== (function() { "use strict"; // 章节筛选 function chapterFilter(chapter) { return chapter.chapterNumber <= 100; } // 保存选项 const saveOptions = { getchapterName: (chapter) => { return `第${chapter.chapterNumber}章 ${chapter.chapterName || ""}`; } }; window.chapterFilter = chapterFilter; window.saveOptions = saveOptions; })();novel-downloader后台抓包与解析界面,展示工具如何智能提取小说章节链接
实用技巧与最佳实践
提高下载成功率
- 网络环境:使用稳定的网络连接,避免在下载过程中断开
- 登录状态:下载付费章节前确保已登录相应网站账户并已购买
- 反爬处理:如遇到频繁失败,尝试降低并行下载线程数
- 分批下载:对于超长篇小说,建议分卷或分批次下载
性能优化建议
- 调整并行下载线程数(默认3个),找到适合当前网站的最佳值
- 使用章节筛选功能只下载需要的部分
- 定期清理浏览器缓存,保持脚本运行流畅
- 关注项目更新,及时获取最新的网站支持和bug修复
特殊网站注意事项
- 晋江文学城:需要配置Token才能获得最佳体验,可以在脚本设置中获取
- 长佩文学:反爬机制较严,限制下载速度,每分钟约可下载6章
- 七猫中文网:需要先进入作品目录页面再运行脚本
- Lofter:图片较多的博客下载时请注意内存用量,脚本会跳过视频内容
常见问题与解决方案
下载按钮不显示怎么办?
- 确认当前网站是否在支持列表中
- 刷新页面重新加载脚本
- 检查脚本管理器是否正确安装并启用
- 对于单页应用网站(如长佩文学、pixiv),可能需要按F5重新加载页面
下载过程中卡住了如何处理?
- 降低并行下载线程数(在设置中调整)
- 检查网络连接是否稳定
- 查看控制台错误信息,可能需要等待网站反爬机制解除
- 对于性能较差的网站,适当增加下载间隔时间
付费章节无法下载怎么解决?
- 确保已登录相应网站账户
- 确认已购买相关付费章节
- 部分网站需要配置特殊Token(如晋江文学城)
- 检查账户是否有足够的权限
下载的文件出现乱码怎么办?
- 启用调试模式生成详细日志
- 检查字体匹配是否正常
- 对于字体加密网站,可能需要手动提交字体匹配请求
- 查看控制台输出,确认字符编码设置是否正确
安全使用与版权提示
novel-downloader是一个强大的工具,但使用时请务必遵守以下原则:
- 仅下载你已购买或有权阅读的内容
- 尊重作者版权,合理使用下载功能
- 不要在公共场合分享下载的付费内容
- 定期备份重要的下载文件
- 遵守各网站的Terms of Service
进阶功能:为开发者扩展
如果你想要为novel-downloader添加对新网站的支持,可以按照以下步骤操作:
创建新规则文件
在src/rules/目录下创建新的规则文件,继承BaseRuleClass类并实现必要的方法:
import { BaseRuleClass } from "../lib/rule"; export default class NewSite extends BaseRuleClass { public siteName = "new-site"; public urlPattern = /https:\/\/www\.newsite\.com\/novel\/.+/; public async bookParse() { // 实现书籍信息提取逻辑 } public async chapterParse() { // 实现章节内容提取逻辑 } }注册新规则
在src/router/download.ts中添加新规则的选择逻辑,并在header.json文件的match字段中添加相应的URL模式。
测试与构建
yarn lint # 代码检查 yarn build # 构建脚本 yarn test # 运行测试开始你的离线阅读之旅
novel-downloader不仅仅是一个下载工具,更是数字阅读时代的知识守护者。在信息易逝的今天,它帮助我们保存那些珍贵的文字,让优质内容不会因为网站关闭或内容下架而彻底消失。
无论你是想要离线阅读方便通勤,还是想要收藏心爱的小说,或是作为技术爱好者想要研究网页解析技术,novel-downloader都能满足你的需求。它的开源特性意味着你可以自由定制、贡献代码,与全球开发者一起完善这个工具。
现在就开始使用novel-downloader,建立你自己的数字图书馆,让阅读不再受网络限制,随时随地享受文字的魅力。
novel-downloader生成的纯文本输出文件,展示工具对小说内容的格式化存储能力
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考