TamperMonkey油猴/暴力猴浏览器脚本插件中文网(TMchina)

[辅助] 油猴脚本暴力猴脚本:将小说用浏览器下载到电脑

[复制链接]
发表于 2022-5-22 11:32:24 | 显示全部楼层 |阅读模式

马上注册,结交更多网友,浏览器插件/脚本不再愁!

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
一个可扩展的通用型小说下载器,方便保存这些质量上乘,但不够热门,没有被其他网站转载,彻底从互联网上消失的作品。



本脚本为404小说文库项目的组成部分之一,对于无登录墙的小说网站,如您同意,本脚本将会尝试将当前书籍详情页及目录页(如果存在)存档至互联网档案馆(archive.org),以备日后(被删除后)查看。

存档过程中将会搜集并上报您如下信息:IP地址、User-Agent、Referer、当前书籍详情页URL、当前书籍目录页URL(如果存在)、当前小说下载器脚本版本、当前脚本管理器版本。除上述信息外,不会搜集您任何其他信息。

安装
本软件为油猴脚本,需先在浏览器安装油猴脚本管理器(Tampermonkey)或暴力猴,再安装本脚本。具体可参见本站主菜单栏的信息。

使用方法
本脚本执行下载任务时将播放无声音频,以保证脚本后台运行时不被休眠。

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

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

你通过右下角进度条了解当前下载进度,或者按下 F12,打开网页控制台查看当前下载状态。

下载完成后,本脚本将会自动下载一个TXT文档及EPUB文件。

TXT文档请使用记事本或其它阅读软件进行阅读。

EPUB文件请使用相应阅读器阅读。

目前支持小说网站
特别提醒:如欲下载支持列表中网站的付费章节,请登录相应网站帐户,并确定已购买相应付费章节。未登录网站帐户,或未购买的付费章节,下载时将直接忽略,无法进行下载。

  1. 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 函数,具体格式如下:

  1. declare enum Status {
  2.     pending = 0,
  3.     downloading = 1,
  4.     failed = 2,
  5.     finished = 3,
  6.     aborted = 4,
  7.     saved = 5
  8. }
  9. interface ChapterAdditionalMetadate {
  10.     lastModified?: number;
  11. }
  12. declare class Chapter {
  13.     bookUrl: string;
  14.     bookname: string;
  15.     chapterUrl: string;
  16.     chapterNumber: number;
  17.     chapterName: string | null;
  18.     isVIP: boolean;
  19.     isPaid: boolean | null;
  20.     sectionName: string | null;
  21.     sectionNumber: number | null;
  22.     sectionChapterNumber: number | null;
  23.     chapterParse: BaseRuleClass["chapterParse"];
  24.     charset: string;
  25.     options: object;
  26.     status: Status;
  27.     retryTime: number;
  28.     contentRaw: HTMLElement | null;
  29.     contentText: string | null;
  30.     contentHTML: HTMLElement | null;
  31.     contentImages: attachmentClass[] | null;
  32.     additionalMetadate: ChapterAdditionalMetadate | null;
  33.     chapterHtmlFileName: string | number;
  34.     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);
  35.     init(): Promise<this>;
  36.     private parse;
  37. }
  38. declare class attachmentClass {
  39.     url: string;
  40.     name: string;
  41.     mode: "naive" | "TM";
  42.     headers?: {
  43.         [index: string]: string;
  44.     };
  45.     private defaultHeader;
  46.     status: Status;
  47.     retryTime: number;
  48.     imageBlob: Blob | null | void;
  49.     constructor(imageUrl: string, name: string, mode: "naive" | "TM");
  50.     init(): Promise<Blob | null>;
  51.     private downloadImage;
  52.     private tmDownloadImage;
  53. }

  54. interface chapterFilter {
  55.     (chapter: Chapter): boolean;
  56. }
复制代码


自定义筛选函数示例:

只下载该本小说前100章内容:

  1. function chapterFilter(chapter) {
  2.   return chapter.chapterNumber <= 100
  3. }
复制代码


只下载第一卷内容:

  1. function chapterFilter(chapter) {
  2.   return chapter.sectionNumber === 1
  3. }
复制代码

只下载章节名称中含有“武器”的章节:

  1. function chapterFilter(chapter) {
  2.   return chapter.chapterName.includes("武器")
  3. }
复制代码


自定义保存参数
自定义保存参数允许您修改保存文件的样式,章节标题等内容。

使用方法大致同自定义筛选函数,即在 window 下创建 saveOptions 对象,具体格式如下:

  1. declare class saveBook {
  2.     protected book: Book;
  3.     mainStyleText: string;
  4.     tocStyleText: string;
  5.     constructor(book: Book);
  6.     saveTxt(): void;
  7.     saveLog(): void;
  8.     saveZip(runSaveChapters?: boolean): Promise<void>;
  9.     addChapter(chapter: Chapter): void;
  10.     getchapterName(chapter: Chapter): string;
  11.     genSectionText(sectionName: string): string;
  12.     genChapterText(chapterName: string, contentText: string): string;
  13.     genSectionHtmlFile(chapterObj: Chapter): Blob;
  14.     genChapterHtmlFile(chapterObj: Chapter): Blob;
  15.     chapterSort(a: Chapter, b: Chapter): 0 | 1 | -1;
  16. }
  17. interface saveOptions {
  18.     mainStyleText?: saveBook["mainStyleText"];
  19.     tocStyleText?: saveBook["tocStyleText"];
  20.     getchapterName?: saveBook["getchapterName"];
  21.     genSectionText?: saveBook["genSectionText"];
  22.     genChapterText?: saveBook["genChapterText"];
  23.     genSectionHtmlFile?: saveBook["genSectionHtmlFile"];
  24.     genChapterHtmlFile?: saveBook["genChapterHtmlFile"];
  25.     chapterSort?: saveBook["chapterSort"];
  26. }
复制代码


自定义保存参数示例:

将章节名称格式修改为 第xx章 xxxx :

  1. const saveOptions = {
  2.     getchapterName: (chapter) => {
  3.         if (chapter.chapterName) {
  4.             return `第${chapter.chapterNumber.toString()}章 ${chapter.chapterName}`;
  5.         } else {
  6.             return `第${chapter.chapterNumber.toString()}章`;
  7.         }
  8.     }
  9. }
  10. window.saveOptions = saveOptions
复制代码


更改ZIP文档中章节HTML文件样式:

  1. const saveOptions = {
  2.     "mainStyleText": `p {
  3.   text-indent: 4em;
  4.   display: block;
  5.   line-height: 1.3em;
  6.   margin-top: 0.4em;
  7.   margin-bottom: 0.4em;
  8. }`
  9. }
  10. window.saveOptions = saveOptions
复制代码


txt文档每个自然段前加两个空格

  1. const saveOptions = {
  2.     genChapterText: (chapterName, contentText) => {
  3.         contentText = contentText
  4.                     .split('\n')
  5.                     .map(line => {
  6.                             if (line.trim() === "") {
  7.                                 return line
  8.                             } else {
  9.                                 return line.replace(/^/,'    ')
  10.                             }
  11.                         })
  12.                     .join('\n')
  13.         return `## ${chapterName}\n\n${contentText}\n\n`;
  14.     }
  15. }
  16. window.saveOptions = saveOptions
复制代码


保存章节时倒序排列

  1. const saveOptions = {
  2.     chapterSort: (a, b) => {
  3.         if (a.chapterNumber > b.chapterNumber) {
  4.             return -1;
  5.         }
  6.         if (a.chapterNumber === b.chapterNumber) {
  7.             return 0;
  8.         }
  9.         if (a.chapterNumber < b.chapterNumber) {
  10.             return 1;
  11.         }
  12.             return 0;
  13.     }
  14. }
  15. window.saveOptions = saveOptions
复制代码


使用用户脚本自动注入自定义保存参数:

如您总是想使用某一自定义保存参数,你可以使用如下用户脚本(根据实际需要修改相应数值),自动向页面注入自定义保存参数。

  1. // ==UserScript==
  2. // @name         auto inject saveOptions
  3. // @namespace    http://tampermonkey.net/
  4. // @version      0.1
  5. // @description  auto inject saveOptions
  6. // @author       You
  7. // @match        *://*/*
  8. // @grant        none
  9. // ==/UserScript==

  10. (function() {
  11.     'use strict';

  12.     const saveOptions = {
  13.         getchapterName: (chapter) => {
  14.             if (chapter.chapterName) {
  15.                 return `第${chapter.chapterNumber.toString()}章 ${chapter.chapterName}`;
  16.             } else {
  17.                 return `第${chapter.chapterNumber.toString()}章`;
  18.             }
  19.         }
  20.     }
  21.     window.saveOptions = saveOptions
  22. })();
复制代码


自定义筛选函数同理也可使用用户脚本自动注入。

自定义完成回调函数
  1. interface customFinishCallback {
  2.     (): void;
  3. }
复制代码

自定义完成回调函数将在下载完成并生成ZIP文件后自动执行。

使用自定义完成回调函数可在下载完成后自动完成某些工作,例如:关闭当前窗口。

  1. function customFinishCallback(book: Book) {
  2.     window.close();
  3. }
  4. window.customFinishCallback = customFinishCallback;
复制代码


将小说用浏览器下载到电脑 v4.9.0.692



创建日期:2020/6/26
最近更新:2022/5/22
novel-downloader v4.9.0.693 tampermonkey_scripts.zip (305.7 KB, 下载次数: 1)

TM中文网 - 脚本安装指南

1、本站ZIP导入包一般命名类似为tmchina.net_xxx_script.zip,一般无需解压直接导入(导入不成功则解压看是否里面还有ZIP文件,有的话再导入)。
2、JS版为代码版,可在油猴/暴力猴控制台直接添加脚本的方式把JS文件内的代码复制粘贴进去,保存即可成功安装脚本。
3、脚本导入的相关教程《油猴脚本导入教程》/《暴力猴脚本导入教程


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

最近更新的脚本

免责声明

TMchina所发布的一切浏览器脚本及应用的帖子仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该应用,请支持开发者,若有VIP相关脚本,我们推荐您购买VIP得到更好的官方服务。(如有侵犯了您权益的应用请点此处联系我们处理

联系我们|Archiver|小黑屋|sitemap|, Processed in 0.047043 second(s), 25 queries .   
快速回复 返回顶部 返回列表