懒人小说下载器

通用网站内容抓取工具,可批量抓取小说、论坛内容等并保存为TXT文档

当前为 2022-01-01 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

作者
hoothin
评分
0 0 0
版本
2.6.2
创建于
2016-11-23
更新于
2022-01-01
大小
26.1 KB
兼容性
与 Firefox 兼容 与 Chrome 兼容 与 Opera 兼容 与 Safari 兼容
许可证
MIT
适用于
所有网站

test case

起点晋江红袖以及其他知名小说站都推荐用这个脚本【小说】下载脚本,遇到没人愿意适配的不知名小站再考虑我的脚本。

轻量级抓取脚本,用于下载网页中的主要内容,理论上适用于任何非Ajax写入正文的小说网站、论坛、贴吧等而无需为此写任何规则。

脚本会自动检索页面中的主要内容并下载(省得复制完gal攻略还要手动逐条删除“某某某13级头衔水龙王发表于X年X月X日来自XX客户端”)。 如果位于小说目录页会遍历所有章节并排序拼接后存为TXT文档。

img

【高亮或者格式化页面中选中的代码,并统计字数】


操作说明

  • 打开小说目录页、论坛或贴吧内容页
  • 按下 CTRL+F9 或点击命令菜单
  • 按下 SHIFT+CTRL+F9 忽略目录,仅下载当前页

关于配置项

【以下功能需要通过 Tampermonkey 或 Violentmonkey 等脚本管理器的命令菜单进入】

  • 自定义下载目录范围:如https://xxx.xxx/book-[20-99].html,https://xxx.xxx/book-[01-10].html,意思为下载book-20.html到book-99.html,以及book-01.html到book-10.html,使用[1-10]则不补0。
  • 通过章节选择器自定义下载:输入要下载的章节链接的css选择器即可,后面可以接上url替换码、以及自定义处理代码。
  • 干扰码:填入干扰码的css选择器,如.mask,.ksam,意为删除class为mask或者ksam的元素。
  • 按标题名重新排序:是则把目录页所有链接按标题名排序后存入txt,否则按页面位置顺序排列。
  • 下载线程数:同时下载的线程数,默认为20,遇到存在限制的站点(例如下载时总有章节获取失败)可调低。

怠惰心法

此功共有七层,以第一层最易,第七层最难。

第一层心法

CTRL+F9 就完事了呗。

第二层心法

假若章节链接没有xx章、xx节、xx话之类的特征字样,可点击自定义下载,输入随便一个章节名,例如 “众神的风车”,即可标记所有同级链接为目录章节并下载。假如页面有两套章节格式,也可标记多个,例如“众神的风车,风车的众神”。

第三层心法

如果内页没有正文,但章节链接与真实内容链接有关联,可通过自定义下载,替换链接内容获取真实内容。例如 【众神的风车@@articles@@articlescontent】,即可替换章节URL中的article为articlescontent。

第四层心法

输入章节的css选择器可以更精确地标记章节链接。例如.l_chaptname>a,代表class为l_chaptname的元素下的a链接。

第五层心法

下载内容可能含有干扰码,此时只需点击懒人小说下载设置,输入干扰码的css选择器即可排除干扰码。例如 .mask,.ksam,代表删除class为mask或者ksam的元素。

第六层心法

假若正文不在内页正文,是页面加载后处理得到的,可点击自定义下载,输入自定义代码对内页进行分析获取正确结果。例如 【众神的风车@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content;】,即可忽略正文,只通过自定义代码处理返回页面获取内容。代码中使用data可以获得返回页面的document,最后一个表达式的值为最终写入的内容。

第七层心法

假若正文已经经过加密,需要解密才能获取正确内容,可打开浏览器的控制台,自定义dacProcess函数,调取页面中网站自身的解密代码处理抓取的加密数据。例如控制台输入dacProcess=data=>{return decrypt(xxx);} 代表调用网站的decrypt解密章节页面返回的数据。然后再点击自定义下载,需要注意自定义下载时标记章节是必需的。

简易自定义例子

  1. po18,章节的选择器为 .l_chaptname>a ,输入并下载后发现通过 url 无法下载正文内容,正文是 ajax 通过 articlescontent 下载的。此时可后接 @@articles@@articlescontent (@@ 分隔) 将章节 url 中的 articles 替换为 articlescontent 。 综上 .l_chaptname>a@@articles@@articlescontent 可适配该站,粘贴进命令菜单即可下载。其中第一个 articles 可使用正则,例如 @@articles(\d+)@@$1content 代表将链接中的「articles1」「articles2」等替换为「1content」「2content」。
  2. pixiv,p站小说的章节选择器为main>section ul>li>div>a,无需替换链接,因此后两项留空。有6个@了 😂。正文在meta里,需要自定义代码提取meta-preload数据的content项。综上 main>section ul>li>div>a@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content; 即可下载p站小说。其中 "data" 代表抓取网页的document对象,若返回的是纯文本,则用 data.body.innerText 获取。

如果有帮助到你,请杯奶茶吧,帮提神并鼓励常更新

donation

测试网页

为啥要写这个脚本?

主要是怠惰啊 因为我要下载驰星周的漂流街,却发现前人的轮子“【小说】下载脚本”不能用,又不想为这破站 🙃 写规则,而且我就是看不上霸道总裁修仙穿越你咬我啊指不定它三天两头改个版呢。写个通用规则的脚本,一来可以不用追着数不清的小说站适配修改更新,二来也免去了法律风险。 这个脚本会自动去查找主要内容并下载,不需要写规则。当然如果你家网站广告内容比正文还多我也没办法。 遇到特殊网站还是建议用“【小说】下载脚本”。