Novel-downloader:全网小说批量下载与离线阅读终极指南
Novel-downloader:全网小说批量下载与离线阅读终极指南
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
你是否曾为网络不稳定无法追更小说而烦恼?是否想收藏心爱的作品却苦于无法离线阅读?novel-downloader正是为你量身打造的多平台小说下载工具。这款可扩展的通用型小说下载器能够从超过100个小说网站自动抓取内容,转换为TXT和EPUB格式,让你随时随地享受离线阅读的乐趣。在404时代,当小说突然从原网站消失时,这款工具还能帮助你保存珍贵的小说资源,确保优质作品不会彻底从互联网上消失。
🚀 三分钟快速上手:新手也能轻松使用
安装准备:脚本管理器是必备工具
novel-downloader是一个油猴脚本(UserScript),需要先在浏览器安装脚本管理器才能使用。主流浏览器都支持以下任意一款脚本管理器:
- 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文件,这就是可以直接安装的脚本。
基础使用方法
安装脚本后,访问支持的小说网站,当你打开小说目录页时,网页右上角会出现一个下载图标。点击该图标,脚本就会开始自动抓取小说内容。
下载过程说明:
- 脚本会分析页面结构,识别章节列表
- 自动下载所有章节内容(包括付费章节,需要你已登录并购买)
- 下载完成后自动打包为TXT和EPUB文件
- 浏览器会自动下载生成的文件
重要提示:下载付费章节前,请确保已登录相应网站账户并已购买相关章节。未登录或未购买的付费章节会被自动跳过。
📚 支持的网站:覆盖国内外主流平台
novel-downloader支持超过100个小说网站,包括国内外主流平台:
国内主流平台:
- 起点中文网、起点女生网、晋江文学城
- 长佩文学、书耽、海棠文化线上文学城
- 七猫中文网、番茄小说、息壤中文网
- 有毒小说网、独阅读、轻之文库轻小说
国外平台:
- カクヨム(日本)、小説家になろう(日本)
- pixiv小说、Lofter
- Novel Up Plus、ESJ
转载网站:
- 笔趣阁系列、UU看书网、和图书
- 书趣阁、星空中文、乐文小说网
完整支持列表可在项目文档中查看,脚本持续更新中,更多网站正在不断添加。
🔍 下载流程详解:从点击到完成
当你打开支持的小说网站时,右上角会出现下载按钮。点击后,脚本会:
- 分析页面结构:识别章节列表和内容区域
- 批量下载章节:按照顺序或并行下载各章节
- 内容处理:清理广告、格式化文本、处理特殊加密
- 文件生成:打包为TXT和EPUB两种格式
- 自动下载:浏览器自动保存生成的文件
下载进度监控:
- 页面右下角有进度条显示整体进度
- 按下F12打开开发者工具,在控制台可查看详细下载状态
- 每个章节的下载状态都会实时更新
🛡️ 特殊网站处理:应对反爬机制
有些网站采用特殊技术防止内容被抓取,novel-downloader提供了相应的解决方案:
图片文字识别:部分网站将文字替换为图片,脚本采用三级解码方案:
- 文件名映射(最快)
- 哈希值匹配(较快)
- OCR光学识别(最准确但较慢)
字体加密处理:晋江文学城等网站使用自定义字体,脚本会自动下载字体文件并建立映射关系,确保文字正确显示。
付费章节支持:对于需要登录的付费章节,脚本会使用你的登录状态进行访问。请确保已登录网站账户。
⚙️ 高级功能:个性化定制与扩展
自定义下载设置
在脚本设置中,你可以调整下载参数以获得最佳体验:
// 并行下载线程数(同时下载的章节数量) // 数值越大下载越快,但可能触发网站反爬机制 parallelThreads: 3 // 下载间隔(仅当并行线程数为1时生效) // 控制每章节下载后的等待时间,单位为毫秒 downloadInterval: 1000 // 最大下载间隔 // 防止因网络问题导致的无限等待 maxInterval: 5000章节筛选功能
如果你只想下载小说的特定部分,可以使用章节筛选功能:
// 只下载前100章 function chapterFilter(chapter) { return chapter.chapterNumber <= 100; } // 只下载第一卷 function chapterFilter(chapter) { return chapter.sectionNumber === 1; } // 只下载包含特定关键词的章节 function chapterFilter(chapter) { return chapter.chapterName.includes("武器"); }在开始下载前,按下F12打开开发者工具,在控制台中定义chapterFilter函数即可生效。
自定义输出格式
你可以完全控制生成文件的样式和格式:
const saveOptions = { // 修改章节标题格式 getchapterName: (chapter) => { if (chapter.chapterName) { return `第${chapter.chapterNumber}章 ${chapter.chapterName}`; } else { return `第${chapter.chapterNumber}章`; } }, // 自定义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>", ""); } };网站登录Token配置
对于需要特殊登录验证的网站(如晋江文学城、息壤中文网),需要配置相应的token:
晋江文学城Token获取:
- 在晋江小说页面打开脚本设置
- 点击"获取token"按钮
- 按照提示输入账号密码登录
- 脚本会自动获取并保存token
息壤中文网Token获取: 需要抓取Android app的请求头信息,具体操作可参考项目文档中的详细教程。
🛠️ 开发者指南:如何扩展支持新网站
novel-downloader采用模块化设计,可以轻松扩展支持新的小说网站。如果你发现某个网站不受支持,可以按照以下步骤添加支持:
创建新规则文件
在src/rules/目录下创建新的规则文件,例如src/rules/custom-site.ts:
import { BaseRuleClass } from "../lib/rule"; export default class CustomSite extends BaseRuleClass { // 网站名称 public siteName = "custom-site"; // URL匹配规则 public urlPattern = /https:\/\/www\.custom-site\.com\/novel\/.+/; // 书籍解析方法 public async bookParse() { // 实现书籍信息提取逻辑 } // 章节解析方法 public async chapterParse() { // 实现章节内容提取逻辑 } }注册新规则
在src/router/download.ts中添加新规则的选择逻辑:
// 导入新规则 import CustomSite from "../rules/custom-site"; // 在规则选择函数中添加判断 if (url.match(CustomSite.prototype.urlPattern)) { return new CustomSite(); }更新匹配配置
在header.json文件的match字段中添加新网站的URL模式:
{ "match": [ "*://*.custom-site.com/novel/*", // ... 其他匹配规则 ] }测试与构建
完成代码编写后,运行以下命令进行测试和构建:
yarn lint # 代码检查 yarn build # 构建脚本 yarn test # 运行测试💡 实用技巧与注意事项
提高下载成功率
- 网络环境:确保网络连接稳定,避免在下载过程中断开
- 登录状态:下载付费章节前确认已登录相应网站
- 反爬处理:如果遇到频繁失败,尝试降低并行下载线程数
- 耐心等待:大量章节下载可能需要较长时间,请耐心等待完成
常见问题解决
Q:下载过程中卡住了怎么办?A:按下F12打开开发者工具,查看控制台中的错误信息。常见原因包括网络问题、网站反爬机制触发等。
Q:下载的文件乱码或格式错误?A:尝试在设置中启用调试模式,生成调试日志后提交issue寻求帮助。
Q:如何支持新的小说网站?A:参考开发者指南创建新规则,或到项目issue页面提交请求。
Q:脚本在某个网站上不显示下载按钮?A:确认该网站是否在支持列表中,或尝试刷新页面重新加载脚本。
性能优化建议
- 对于章节较多的小说,建议分批下载
- 使用自定义筛选功能只下载需要的章节
- 调整并行下载线程数,找到适合当前网站的最佳值
- 定期更新脚本以获取最新的网站支持
🌟 结语:为阅读爱好者打造的强大工具
novel-downloader是一个强大而灵活的小说下载工具,无论你是普通读者想要离线阅读,还是技术爱好者想要收藏珍贵资源,它都能满足你的需求。通过简单的安装和配置,你就能轻松下载全网小说,享受随时随地的阅读体验。
项目持续维护更新,支持网站列表不断扩展。如果你在使用过程中遇到问题或有新功能建议,欢迎到项目页面提交反馈。让我们一起为保存互联网上的优秀小说作品贡献力量!
温馨提示:请尊重作者版权,仅下载你已购买或有权阅读的内容。本工具旨在帮助读者更好地管理和阅读已拥有的数字内容。
项目资源:
- 源码目录:
src/- 包含所有核心功能代码 - 规则文件:
src/rules/- 各网站解析规则 - UI界面:
src/ui/- 用户界面组件 - 保存模块:
src/save/- 文件生成和保存逻辑
官方文档:项目根目录下的README.md文件提供了详细的使用说明和技术文档。
【免费下载链接】novel-downloader一个可扩展的通用型小说下载器。项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
