Greasy Fork is available in English.

小说下载器

一个从笔趣阁这样的小说网站下载小说的通用脚本

Versione datata 27/06/2020. Vedi la nuova versione l'ultima versione.

Autore
bgme
Valutazione
0 0 0
Versione
1.1.3.2
Creato il
26/06/2020
Aggiornato il
27/06/2020
Licenza
AGPL-3.0-or-later
Applica a

小说下载器

本脚本是一个可扩展的通用型小说下载器,适用于大多数静态小说网站。

使用方法

如果本脚本支持该小说网站,当打开小说目录页时,网页右上角会出现下载图标,点击该图标即可开始下载。

当下载完成后,会自动下载一个txt文档及zip压缩包。

如果你要下载的小说章节较多,等待时间可能较长,此时请耐心等待。

你也可以按下F12,打开网页控制台查看当前下载状态。

demo

目前支持小说网站

添加更多网站

你可以通过添加抓取规则以添加更多小说网站,即向 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个函数组成:

函数名功能返回值
bookname()抓取小说题名String
author()抓取小说作者String
intro()抓取小说简介String
linkList()抓取小说分章链接列表NodeList
coverUrl()抓取小说封面图片地址String

以上5个函数在小说目录页(即按下按钮时的页面)运行。

函数名功能返回值
chapterName(doc)抓取小说章节名String
content(doc)抓取小说章节主体部分Element

以上2个函数在小说章节页运行,输入值 doc 为小说章节页的 document

根据上述要求添加好相应网站抓取规则,并在 // @match 中添加相应网站,即可在新网站上使用本下载器。

调试功能

enableDebug 变量改为 true 可开启调试功能,开启之后可在控制台(console)中访问如下对象:

对象名类型功能
rule变量当前网站抓取规则
main(rule)函数运行下载器
convertDomNode(node)函数输出处理后的txt文本及Dom节点
ruleTest(rule)函数测试抓取规则

License

AGPL-3.0-or-later