小说下载器
本脚本是一个可扩展的通用型小说下载器,适用于大多数静态小说网站。
使用方法
如果本脚本支持该小说网站,当打开小说目录页时,网页右上角会出现下载图标,点击该图标即可开始下载。
当下载完成后,会自动下载一个txt文档及zip压缩包。
如果你要下载的小说章节较多,等待时间可能较长,此时请耐心等待。
你也可以按下F12,打开网页控制台查看当前下载状态。

目前支持小说网站
添加更多网站
你可以通过添加抓取规则以添加更多小说网站,即向 rules
Map 中添加新的条目。
抓取规则示例:
["www.yruan.com", {
bookname() { return document.querySelector('#info > h1:nth-child(1)').innerText.trim() },
author() { return document.querySelector('#info > p:nth-child(2)').innerText.replace(/作\s+者:/, '').trim() },
intro() { return convertDomNode(document.querySelector('#intro > p'))[0] },
linkList() { return document.querySelectorAll('div.box_con div#list dl dd a') },
coverUrl() { return document.querySelector('#fmimg > img').src; },
chapterName: function(doc) { return doc.querySelector('.bookname > h1:nth-child(1)').innerText.trim() },
content: function(doc) { return doc.querySelector('#content') },
}],
抓取规则的 key
为该抓取规则适用的网站域名,即 document.location.host
。
抓取规则的 value
一对象,该对象由7个函数1个变量组成:
以上5个函数在小说目录页(即按下按钮时的页面)运行。
函数名 | 功能 | 返回值 |
---|
chapterName(doc) | 抓取小说章节名 | String |
content(doc) | 抓取小说章节主体部分 | Element |
以上2个函数在小说章节页运行,输入值 doc
为小说章节页的 document
。
变量名 | 功能 | 备注 |
---|
charset | 网站响应的编码方式 | 可选 |
若网站返回的响应非 UTF-8
编码,请添加 charset
变量注明编码方式。网站当前编码方式可通过 document.charset
查看。
根据上述要求添加好相应网站抓取规则,并在 // @match
中添加相应网站,即可在新网站上使用本下载器。
调试功能
将 enableDebug
变量改为 true
可开启调试功能,开启之后可在控制台(console)中访问如下对象:
对象名 | 类型 | 功能 |
---|
rule | 变量 | 当前网站抓取规则 |
main(rule) | 函数 | 运行下载器 |
convertDomNode(node) | 函数 | 输出处理后的txt文本及Dom节点 |
ruleTest(rule) | 函数 | 测试抓取规则 |
License
AGPL-3.0-or-later