200+网站通用:novel-downloader小说下载器完全指南
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
你是否曾经遇到过这样的情况:在某个小说网站上发现了一本精彩的小说,想要保存下来离线阅读,却发现网站没有提供下载功能?或者你担心某部心爱的小说突然从互联网上消失,再也找不到?novel-downloader正是为解决这些问题而生的开源浏览器脚本,它支持超过200个小说网站,让你轻松下载和保存网络文学作品。
这款基于TypeScript开发的小说下载器是一个强大的浏览器扩展工具,能够自动识别小说网站结构,批量下载章节内容,并生成TXT和EPUB格式的文件。无论你是普通读者想要离线阅读,还是希望永久保存珍贵的小说资源,novel-downloader都能满足你的需求。
🚀 快速开始:三分钟安装使用
第一步:安装浏览器脚本管理器
要使用novel-downloader,首先需要在浏览器中安装脚本管理器扩展。目前支持的主流管理器包括:
- Tampermonkey(推荐):最流行的用户脚本管理器
- Violentmonkey:开源免费的替代选择
- Greasemonkey:经典的用户脚本管理器
安装好脚本管理器后,就可以开始安装novel-downloader脚本了。
第二步:获取并安装脚本
从项目仓库获取最新版本的脚本文件:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn build构建完成后,在dist目录下找到bundle.user.js文件,将其拖拽到浏览器中安装即可。
第三步:开始下载小说
安装成功后,访问支持的小说网站(如起点中文网、晋江文学城等),当打开小说目录页时,网页右上角会自动出现下载图标:
点击下载图标,novel-downloader就会开始自动解析章节列表并下载内容。下载过程中,你可以通过右下角的进度条实时查看进度,或者按F12打开开发者工具的控制台查看详细状态。
📚 支持网站:覆盖全网主流平台
novel-downloader支持超过200个小说网站,涵盖中文、日文等多种语言的原创和转载平台。主要支持的网站类型包括:
主流原创平台
- 起点中文网:国内最大的原创文学网站
- 晋江文学城:女性向文学的重要平台
- SF轻小说:轻小说爱好者的聚集地
- 刺猬猫:二次元原创小说平台
- 纵横中文网:老牌原创文学网站
转载和阅读平台
- 笔趣阁系列:多个笔趣阁镜像站点
- UU看书网:热门小说转载平台
- 轻小说文库:日系轻小说资源站
- 海棠文化:耽美文学专门站
海外平台
- カクヨム:日本小说投稿网站
- 小説家になろう:日本最大的小说投稿平台
- Pixiv小说:日本插画社区的小说板块
完整支持列表可以在项目的README.md文件中查看。对于需要登录的付费章节,请确保已登录相应账号并购买了相关章节。
🔧 核心功能:智能下载与处理
智能章节解析
novel-downloader能够自动识别不同网站的结构,准确提取:
- 小说基本信息(书名、作者、简介)
- 章节列表和链接
- 章节正文内容
- 分卷信息(如果存在)
多格式输出
下载完成后,novel-downloader会自动生成两种格式的文件:
- TXT格式:纯文本文件,兼容所有阅读器和设备
- EPUB格式:标准电子书格式,支持目录导航和精美排版
OCR图片文字识别
一些网站为了防止内容被抓取,会将文字替换为图片。novel-downloader内置了三级解码方案:
- 文件名映射:根据图片文件名直接匹配文字(最快)
- 哈希匹配:计算图片哈希值匹配已知文字(较快)
- OCR识别:使用PaddleOCR识别图片中的文字(最准确)
这套智能识别系统确保了即使面对图片化文字,也能准确获取小说内容。
⚙️ 高级功能:个性化定制下载
自定义筛选函数
如果你只想下载特定章节,可以使用自定义筛选功能。在开发者工具控制台输入:
// 只下载前100章 function chapterFilter(chapter) { return chapter.chapterNumber <= 100; } window.chapterFilter = chapterFilter; // 只下载第一卷 function chapterFilter(chapter) { return chapter.sectionNumber === 1; } window.chapterFilter = chapterFilter; // 按章节名称筛选 function chapterFilter(chapter) { return chapter.chapterName.includes("大战"); } window.chapterFilter = chapterFilter;自定义保存参数
你可以完全控制输出文件的格式和样式:
// 自定义章节命名格式 const saveOptions = { getchapterName: (chapter) => { if (chapter.chapterName) { return `第${chapter.chapterNumber}章 ${chapter.chapterName}`; } return `第${chapter.chapterNumber}章`; } }; // 自定义文本段落格式 const saveOptions = { genChapterText: (chapterName, contentText) => { // 每个段落前加两个空格 contentText = contentText.split("\n") .map(line => line.trim() ? " " + line : line) .join("\n"); return `## ${chapterName}\n\n${contentText}\n\n`; } }; window.saveOptions = saveOptions;下载参数调优
在设置面板中,你可以调整下载参数以获得最佳体验:
- 并行下载线程数:控制同时下载的章节数量
- 下载间隔:设置章节之间的下载延迟,避免触发反爬机制
- 最大下载间隔:限制最大等待时间
这些参数已经为每个网站设置了合适的默认值,一般无需调整。但在某些反爬严格的网站上,适当调整这些参数可以提高下载成功率。
🛠️ 技术架构:模块化设计
novel-downloader采用模块化架构设计,核心代码位于src/目录下:
rules/:网站规则模块,按网站类型分类
onePage/:单页式网站规则twoPage/:目录和内容分页的网站规则special/:需要特殊处理的网站规则biquge/:笔趣阁系列网站规则
lib/:核心功能库
decoders/:解码器模块,包括OCR识别http.ts:网络请求处理cleanDOM.ts:HTML净化处理
main/:主要业务逻辑
Book.ts:书籍类定义Chapter.ts:章节类定义main.ts:主程序入口
save/:保存模块
epub.ts:EPUB格式生成txt.ts:TXT格式生成raw.ts:原始数据保存
这种模块化设计使得添加新网站支持变得非常简单,只需在rules/目录下创建相应的规则文件即可。
🚨 注意事项与最佳实践
使用建议
- 分批下载:对于超长篇小说(1000+章),建议按卷或按章节范围分批下载
- 避开高峰期:选择夜间或凌晨进行批量下载,避免给网站服务器带来过大压力
- 备份设置:定期导出你的自定义设置和token配置
- 关注更新:定期检查脚本更新,获取新功能和bug修复
常见问题解决
Q:下载按钮不显示怎么办?A:检查网站是否在支持列表中,确认页面完全加载,尝试刷新页面或检查脚本管理器是否正常运行。
Q:下载过程中卡住如何处理?A:启用调试模式(在设置中开启),查看控制台日志定位问题。常见原因包括网络超时、网站反爬或章节解析失败。
Q:下载的内容有乱码?A:novel-downloader会自动检测编码,但某些特殊网站可能需要手动指定。在设置中尝试不同的编码选项。
性能优化
根据实际测试,novel-downloader在不同场景下的表现:
| 场景 | 平均速度 | 内存占用 | 成功率 |
|---|---|---|---|
| 纯文本小说(100章) | 2-3分钟 | 50-100MB | 99%+ |
| 带图片小说(50章) | 5-8分钟 | 200-300MB | 95%+ |
| 付费章节(需登录) | 3-5分钟 | 80-150MB | 90%+ |
🔄 贡献与开发
添加新网站支持
如果你想为novel-downloader添加对新网站的支持,可以按照以下步骤操作:
- 分析网站结构:使用浏览器开发者工具分析目标网站的DOM结构
- 创建规则文件:在
src/rules/相应目录下创建新的TypeScript文件 - 实现核心方法:继承
BaseRuleClass并实现bookParse和chapterParse方法 - 注册规则:在
src/router/download.ts中添加规则选择逻辑 - 更新匹配规则:在
header.json的match字段中添加网站URL模式
项目开发
如果你对开发感兴趣,可以按照以下步骤搭建开发环境:
git clone https://gitcode.com/gh_mirrors/no/novel-downloader cd novel-downloader yarn install yarn dev # 开发模式 yarn build # 构建生产版本项目使用TypeScript开发,遵循严格的代码规范和ESLint检查,确保代码质量。
📈 未来展望
novel-downloader作为一个开源项目,正在不断发展和完善。未来的发展方向包括:
- 更多网站支持:持续增加对新小说网站的支持
- AI增强功能:集成更先进的OCR和NLP技术
- 用户体验优化:改进界面和交互设计
- 性能提升:优化下载速度和内存使用
🤝 加入社区
如果你对novel-downloader感兴趣,欢迎加入我们的社区:
- 提交问题:在项目issue页面报告bug或提出功能建议
- 贡献代码:为项目添加新功能或修复现有问题
- 分享经验:在社区中分享你的使用技巧和配置方案
novel-downloader不仅仅是一个工具,更是对抗数字内容消失的一种解决方案。在404时代,我们面临着越来越多的内容下架风险,而novel-downloader为我们提供了一种技术手段来保存那些珍贵的文字作品。
无论你是普通读者想要保存心爱的小说,还是开发者想要学习网页爬虫技术,novel-downloader都能为你提供强大的支持。现在就开始你的小说下载之旅吧!
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考