TamperMonkey油猴/暴力猴浏览器脚本插件中文网(原TMchina)
标题:
油猴脚本暴力猴脚本:将小说用浏览器下载到电脑
[打印本页]
作者:
疯子先生
时间:
2022-5-22 11:32
标题:
油猴脚本暴力猴脚本:将小说用浏览器下载到电脑
一个可扩展的通用型小说下载器,方便保存这些质量上乘,但不够热门,没有被其他网站转载,彻底从互联网上消失的作品。
本脚本为404小说文库项目的组成部分之一,对于无登录墙的小说网站,如您同意,本脚本将会尝试将当前书籍详情页及目录页(如果存在)存档至互联网档案馆(archive.org),以备日后(被删除后)查看。
存档过程中将会搜集并上报您如下信息:IP地址、User-Agent、Referer、当前书籍详情页URL、当前书籍目录页URL(如果存在)、当前小说下载器脚本版本、当前脚本管理器版本。除上述信息外,不会搜集您任何其他信息。
安装
本软件为油猴脚本,需先在浏览器安装油猴脚本管理器(Tampermonkey)或暴力猴,再安装本脚本。具体可参见本站主菜单栏的信息。
使用方法
本脚本执行下载任务时将播放无声音频,以保证脚本后台运行时不被休眠。
如果本脚本支持该小说网站,当打开小说目录页时,网页右上角会出现下载图标,点击该图标即可开始下载。
如果你要下载的小说章节较多,等待时间可能较长,此时请耐心等待。
你通过右下角进度条了解当前下载进度,或者按下 F12,打开网页控制台查看当前下载状态。
下载完成后,本脚本将会自动下载一个TXT文档及EPUB文件。
TXT文档请使用记事本或其它阅读软件进行阅读。
EPUB文件请使用相应阅读器阅读。
目前支持小说网站
特别提醒:如欲下载支持列表中网站的付费章节,请登录相应网站帐户,并确定已购买相应付费章节。未登录网站帐户,或未购买的付费章节,下载时将直接忽略,无法进行下载。
yruan.com,shuquge.com,hetushu.com,xkzw.org,qidian.com,ciweimao.com,sfacg.com,gebiqu.com,uukanshu.com,dingdiann.net,266ks.com,shouda88.com,viviyzw.com,jjwxc.net,zongheng.com,17k.com,shuhai.com,81book.com,lewenn.com,gongzicp.com,linovel.net,tadu.com,qimao.com,xinwanben.com,idejian.com,wenku8.net,dmzj.com,sosad.funwenzhan.org,sosadfun.com,xn--pxtr7m5ny.com,xn--pxtr7m.com,xn--pxtr7m5ny.net,xn--pxtr7m.net,sosadfun.linkwestnovel.com,xbiquge.solinovelib.com,luoqiuzw.com,fushuwang.org,soxscc,.net,soxscc,.org,soxs.cc,sizhicn,.com,1pwx.com,shubaowa.org,fuguoduxs.com,630shu.net,trxs.cc,trxs123.com,tongrenquan.org,jpxs123.com,imiaobige.com,soshuw.com,biquge66.com,lofter.com,tongrenquan.melwxs9.org,shubl.com,yushuge123.com,soshuwu.org,haitangtxt.net,banzhuer.org,longmabook.com,longmabookcn,.com,lmbooks.com,lmebooks.com,haitbook.com,htwhbook.com,myhtebook.com,lovehtbooks.com,myhtebooks.com,myhtlmebook.com,urhtbooks.com,newhtbook.com,lvhtebook.com,htlvbooks.com,81zw.com,soxscc,.cc,soshuwu.com,dijiubook.net,mht99.com,256wenku.com,kubiji.net,25zw.com,bz01.org,yibige.cc,kanunu8.com,ciyuanji.com,wanben.org,ranwen.labaihexs.com,quanshuzhai.com,masiro.mepixiv.net,kakuyomu.jpsyosetu.com,zhaoze.artmyrics.com,lusetxt.com,a7xs.com,shencou.com,tianyabooks.com,lstxt.cc,aixiawx.com,jingcaiyuedu6.com,hanwujinian.com,syosetu.org,bilibili.com,aixdzs.com,liuxs.lacool18.com,b5200.net,dushu369.com,18kanshu.com,xiaoshuowu.com,xrzww.com,colorful-fantasybooks.com,hongyeshuzhal.com,xbiquwx.lazmcc,x.com,wangshuge.com,biqu55.net,xsyq.cc,bxwx888.org,dizishu.com,yqbiqu.com,xbiquge.laakatsuki-novels.com,alphapolis.co.jpnovelup.plusimbg.cc,69shu.com,houhuayuan.vipreadmoo.com
复制代码
高阶使用技巧
启用调试功能
设置菜单中按击开启。
自定义筛选函数
如欲只下载部分章节,请在点击运行按钮前,按下 F12 打开开发者工具,在 window 下创建 chapterFilter 函数,具体格式如下:
declare enum Status {
pending = 0,
downloading = 1,
failed = 2,
finished = 3,
aborted = 4,
saved = 5
}
interface ChapterAdditionalMetadate {
lastModified?: number;
}
declare class Chapter {
bookUrl: string;
bookname: string;
chapterUrl: string;
chapterNumber: number;
chapterName: string | null;
isVIP: boolean;
isPaid: boolean | null;
sectionName: string | null;
sectionNumber: number | null;
sectionChapterNumber: number | null;
chapterParse: BaseRuleClass["chapterParse"];
charset: string;
options: object;
status: Status;
retryTime: number;
contentRaw: HTMLElement | null;
contentText: string | null;
contentHTML: HTMLElement | null;
contentImages: attachmentClass[] | null;
additionalMetadate: ChapterAdditionalMetadate | null;
chapterHtmlFileName: string | number;
constructor(bookUrl: string, bookname: string, chapterUrl: string, chapterNumber: number, chapterName: string | null, isVIP: boolean, isPaid: boolean | null, sectionName: string | null, sectionNumber: number | null, sectionChapterNumber: number | null, chapterParse: BaseRuleClass["chapterParse"], charset: string, options: object);
init(): Promise<this>;
private parse;
}
declare class attachmentClass {
url: string;
name: string;
mode: "naive" | "TM";
headers?: {
[index: string]: string;
};
private defaultHeader;
status: Status;
retryTime: number;
imageBlob: Blob | null | void;
constructor(imageUrl: string, name: string, mode: "naive" | "TM");
init(): Promise<Blob | null>;
private downloadImage;
private tmDownloadImage;
}
interface chapterFilter {
(chapter: Chapter): boolean;
}
复制代码
自定义筛选函数示例:
只下载该本小说前100章内容:
function chapterFilter(chapter) {
return chapter.chapterNumber <= 100
}
复制代码
只下载第一卷内容:
function chapterFilter(chapter) {
return chapter.sectionNumber === 1
}
复制代码
只下载章节名称中含有“武器”的章节:
function chapterFilter(chapter) {
return chapter.chapterName.includes("武器")
}
复制代码
自定义保存参数
自定义保存参数允许您修改保存文件的样式,章节标题等内容。
使用方法大致同自定义筛选函数,即在 window 下创建 saveOptions 对象,具体格式如下:
declare class saveBook {
protected book: Book;
mainStyleText: string;
tocStyleText: string;
constructor(book: Book);
saveTxt(): void;
saveLog(): void;
saveZip(runSaveChapters?: boolean): Promise<void>;
addChapter(chapter: Chapter): void;
getchapterName(chapter: Chapter): string;
genSectionText(sectionName: string): string;
genChapterText(chapterName: string, contentText: string): string;
genSectionHtmlFile(chapterObj: Chapter): Blob;
genChapterHtmlFile(chapterObj: Chapter): Blob;
chapterSort(a: Chapter, b: Chapter): 0 | 1 | -1;
}
interface saveOptions {
mainStyleText?: saveBook["mainStyleText"];
tocStyleText?: saveBook["tocStyleText"];
getchapterName?: saveBook["getchapterName"];
genSectionText?: saveBook["genSectionText"];
genChapterText?: saveBook["genChapterText"];
genSectionHtmlFile?: saveBook["genSectionHtmlFile"];
genChapterHtmlFile?: saveBook["genChapterHtmlFile"];
chapterSort?: saveBook["chapterSort"];
}
复制代码
自定义保存参数示例:
将章节名称格式修改为 第xx章 xxxx :
const saveOptions = {
getchapterName: (chapter) => {
if (chapter.chapterName) {
return `第${chapter.chapterNumber.toString()}章 ${chapter.chapterName}`;
} else {
return `第${chapter.chapterNumber.toString()}章`;
}
}
}
window.saveOptions = saveOptions
复制代码
更改ZIP文档中章节HTML文件样式:
const saveOptions = {
"mainStyleText": `p {
text-indent: 4em;
display: block;
line-height: 1.3em;
margin-top: 0.4em;
margin-bottom: 0.4em;
}`
}
window.saveOptions = saveOptions
复制代码
txt文档每个自然段前加两个空格
const saveOptions = {
genChapterText: (chapterName, contentText) => {
contentText = contentText
.split('\n')
.map(line => {
if (line.trim() === "") {
return line
} else {
return line.replace(/^/,' ')
}
})
.join('\n')
return `## ${chapterName}\n\n${contentText}\n\n`;
}
}
window.saveOptions = saveOptions
复制代码
保存章节时倒序排列
const saveOptions = {
chapterSort: (a, b) => {
if (a.chapterNumber > b.chapterNumber) {
return -1;
}
if (a.chapterNumber === b.chapterNumber) {
return 0;
}
if (a.chapterNumber < b.chapterNumber) {
return 1;
}
return 0;
}
}
window.saveOptions = saveOptions
复制代码
使用用户脚本自动注入自定义保存参数:
如您总是想使用某一自定义保存参数,你可以使用如下用户脚本(根据实际需要修改相应数值),自动向页面注入自定义保存参数。
// ==UserScript==
// @name auto inject saveOptions
// @namespace http://tampermonkey.net/
// @version 0.1
// @description auto inject saveOptions
// @author You
// @match *://*/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
const saveOptions = {
getchapterName: (chapter) => {
if (chapter.chapterName) {
return `第${chapter.chapterNumber.toString()}章 ${chapter.chapterName}`;
} else {
return `第${chapter.chapterNumber.toString()}章`;
}
}
}
window.saveOptions = saveOptions
})();
复制代码
自定义筛选函数同理也可使用用户脚本自动注入。
自定义完成回调函数
interface customFinishCallback {
(): void;
}
复制代码
自定义完成回调函数将在下载完成并生成ZIP文件后自动执行。
使用自定义完成回调函数可在下载完成后自动完成某些工作,例如:关闭当前窗口。
function customFinishCallback(book: Book) {
window.close();
}
window.customFinishCallback = customFinishCallback;
复制代码
[h2]将小说用浏览器下载到电脑 v4.9.0.692[/h2]
创建日期:2020/6/26
最近更新:2022/5/22
(, 下载次数: 2)
上传
点击文件名下载附件
欢迎光临 TamperMonkey油猴/暴力猴浏览器脚本插件中文网(原TMchina) (https://tampermonkey.cn/)
Powered by Discuz! X3.3