Greasy Fork

Greasy Fork is available in English.

小说下载器

一个可扩展的通用型小说下载器。目前支持起点、晋江、SF轻小说、刺猬猫等小说网站的免费章节,以及亿软小说、精彩小说网、书趣阁、顶点小说、2k小说阅读网、和图书、笔趣窝、星空文学、手打吧等转载网站。详细支持网站列表请打开说明页面。

当前为 2020-07-29 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
bgme
评分
0 0 0
版本
2.0.7.1
创建于
2020-06-26
更新于
2020-07-29
大小
86.6 KB
许可证
AGPL-3.0-or-later
适用于

小说下载器

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

使用方法

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

当下载完成后,会自动下载一个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个函数1个变量组成:

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

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

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

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

变量名功能备注
charset网站响应的编码方式可选
CORS抓取章节时是否跨域可选
maxRetryTimes最大重试次数(默认为3)可选
maxConcurrency下载文本时最大并发数(默认为10)可选
maxImgConcurrency下载图片时最大并发数(默认为5)可选

若网站返回的响应非 UTF-8 编码,请添加 charset 变量注明编码方式。网站当前编码方式可通过 document.charset 查看。

对于起点这样抓取章节页需要跨域的网站,请将 CORS 设为 true

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

调试功能

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

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

License

AGPL-3.0-or-later