您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
通用网站内容抓取工具,可批量抓取任意站点的小说、论坛内容等并保存为TXT文档
当前为
轻量级抓取脚本,用于下载网页小说或其他文字内容,理论上通用于任何静态写入正文的小说网站、论坛、贴吧等而无需规则。
脚本会自动检索页面中的主要内容并下载(省得复制完gal攻略还要手动逐条删除“某某某13级头衔水龙王发表于X年X月X日来自XX客户端”)。
如果位于小说目录页脚本则会遍历所有章节并排序拼接后存为TXT文档。
CTRL + F9
或使用脚本管理器的命令菜单SHIFT + CTRL + F9
忽略目录,仅下载当前页适配申请(已适配站点规则在最下方) 若是遇到下载出错以及动态加载文本的站点,可随意提交 issue 至 Github,我若恰好有空可尝试帮你编写自定义规则。
注:若是 【小说】下载脚本 或 小说下载器 已适配或者列入 todo 列表,或是我认为适配该站会带来律师函之类的麻烦,则适配请求将被忽略。
恰好对你有帮助的话,可请我喝杯奶茶 PayPal.Me or BuyMeACoffee
此功共有七层,以第一层最易,第七层最难。
CTRL+F9 就完事了呗。
倘若章节链接没有xx章、xx节、xx话之类的特征字样,可点击脚本管理器命令菜单里的自定义下载,输入其中随便一个章节名。
例如 “第1页”,即可标记所有同级链接为目录章节并下载。
假如页面有两套章节格式,也可标记多个,例如“众神的风车,风车的众神”。
亦可标记排除项,例如“众神的风车01!02!03,风车的众神!铁幕”,代表标记“众神的风车01”同级链接并排除含有 02 的项和含有 03 的项,同时标记“风车的众神”同级链接并排除含有“铁幕”的项。
如果内页没有正文,但章节链接与真实内容链接有关联,可通过自定义下载,替换链接内容获取真实内容。
例如 【众神的风车@@articles*@@*articlescontent
】,即可替换章节 URL 中的 articles 为 articlescontent 并自动获取内容。
如果链接无法由直接替换得到最终地址,可用正则替换。
例如【众神的风车@@articles(\d+)@@articlescontent_$1b
】,即可替换章节 URL 中的 articles1、articles2 为
articlescontent_1b、articlescontent_2b
输入章节的 css 选择器可以更精确地标记章节链接。
例如.l_chaptname>a
,代表 class 为 l_chaptname 的元素下的 a 链接。
可使用>>
管道来处理抓取到的item。
下载内容可能含有干扰码,此时只需点击懒人小说下载设置,输入干扰码的 css 选择器即可排除干扰码。
例如 .mask,.ksam,font.jammer
,代表删除 class 为 mask 或者 ksam 的元素或者 class 为 jammer 的 font 元素。
倘若正文不在内页正文,是页面加载后处理得到的,可点击自定义下载,输入自定义代码对内页进行分析获取正确结果。
例如 【众神的风车@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content;
】,即可通过自定义代码处理返回页面获取内容。
代码中使用 data 可以获得返回页面的 document,最后一个表达式的值为最终写入的内容。
如果返回 false,代表异步回调,可自行抓取内容并等待抓取成功后用 cb(content) 返回抓取到的 content。
倘若章节没有链接,点击后方才生成链接跳转,可通过 >>
管道处理抓取到的元素生成章节链接,详情见下方例子。
倘若正文已经经过加密,需要解密才能获取正确内容,可打开浏览器的控制台,自定义 dacProcess 函数,调取页面中网站自身的解密代码处理抓取的加密数据。
例如控制台输入dacProcess=data=>{return decrypt(xxx);}
代表调用网站的 decrypt 解密章节页面返回的数据。然后再点击自定义下载,需要注意自定义下载时标记章节是必需的。
某个章节名/CSS选择器【选择器后可跟>>传入item添加处理代码】 @@ 抓取到链接的正则匹配 @@ 对应匹配生成替换URL @@ 根据爬取返回内容data处理并返回最终文本
【以下功能需要通过 Tampermonkey 等管理器的命令菜单进入】
.mask,.ksam
,意为删除 class 为 mask 或者 ksam 的元素。仅作为示例,如果以下网站改版导致失效了,可自行摸索修改
.l_chaptname>a@@articles@@articlescontent
main>section ul>li>div>a@@@@@@var noval=JSON.parse(data.querySelector("#meta-preload-data").content).novel;noval[Object.keys(noval)[0]].content;
ul#lists>li>>let href=item.getAttribute("onclick").replace(/.*(http.*html).*/,"$1"),innerText=item.querySelector("span").innerText;return {href:href,innerText:innerText};@@@@@@let rdtext=data.querySelector('div.rdtext');let sc=data.querySelector('div.ewm+script');if(sc&&rdtext){let code=sc.innerText.replace(/for\(var i=0x0;i<words.*/,"window.words=words;");eval(code);[].forEach.call(rdtext.querySelectorAll('span[class]'),span=>{let id=span.className.replace(/[^\d]/ig,"");span.innerText=words[id]}),rdtext.innerText};
https://yuyan.pw/novel/xxx/[xxxxxxx-xxxxxxx].html@@@@@@var c=data.querySelector('body>script:nth-of-type(8)').innerHTML.match(/var chapter =(.*?);\\n/)[1];eval(c).replaceAll("<br />","");
.chapter-table>a@@@@@@fetch(data.querySelector("div.box-border>script").innerHTML.match(/\/chapter\/(.*?)"/)[0]) .then(response => response.text()) .then(d => {eval("window.txtObj="+d.match(/_txt_call\((.*)\);/)[1]);for(k in txtObj.replace){txtObj.content=txtObj.content.replaceAll(txtObj.replace[k],k)}cb(unescape(txtObj.content.replace(/&#x(.*?);/g,'%u$1')));});return false;
[class^=ChapterItem-root]>>let a=document.createElement("a");let pre=`https://www.zhihu.com/market/paid_column/${location.href.replace(/\D*(\d+)$/,"$1")}/section/`;a.href=pre+JSON.parse(item.dataset.zaExtraModule).card.content.id;a.innerText=item.querySelector("div").innerText;return a;
.chapterList>ul>li>a>>let href=item.href.replace(/.*goChapter((\d+))/,"/noval/"+localStorage.booklist+"/$1.html");item.href=href;return item;
ul.float-list>li>a@@www\.ruochu\.com/book/\d+/(\d+)@@a.ruochu.com/ajax/chapter/content/$1@@var content = data.body.innerText.match(/"htmlContent":"(.*)","status"/);if(!content)console.log(data.body.innerText);else{content=content[1];content.replace(/\r/g,'\n')}
ul.readlist>li>a>>let href=item.getAttribute("onclick").replace(/.*open\('(.*)','.*/,"$1");item.href=href;return item;
.chapterList li>a>>item.href=item.href.replace(/.*gotochapter\('(\d+)','(\d+)','(\d+)'\).*/,"/$1/$2/$3.html");return item;@@@@@@let content=data.querySelector('#contentinfo,#ChapterView>div:nth-child(3)>div');if(!content)return data.body.innerText;content.innerHTML=content.innerHTML.replace(/<br>/g,"\n");content=content.innerText;let pages=data.querySelectorAll(".chapterPages>a:not(.curr)");if(pages){let num=pages.length,cur=0;content=[content];[].forEach.call(pages, (page,i)=>{let url=page.href.replace(/.*\((\d+),(\d+),(\d+),(\d+)\).*/,"/$1/$2/$3_$4.html");fetch(url).then(r => r.text()).then(d => {let doc = document.implementation.createHTMLDocument(''); doc.documentElement.innerHTML = d;let c=doc.querySelector('#contentinfo,#ChapterView>div:nth-child(3)>div');if(c){c.innerHTML=c.innerHTML.replace(/<br>/g,"\n"); content[i+1]=c.innerText;if(++cur>=num)cb(content.join("\n"));} }); });return false;}return content;
.section-list>li>a@@@@@@let content="";let checkContent=(doc,over)=>{word=doc.querySelector('.word_read');if(!word)content+='\n'+doc.body.innerText;else [].forEach.call(word.querySelectorAll('p,h3'),c=>content+='\n'+c.innerText);let next=doc.querySelector(".read_btn>a:nth-child(4)");if(next&&/_\d\.html/.test(next.href)){fetch(next.href).then(r => r.text()).then(d => {let _doc = document.implementation.createHTMLDocument('');_doc.documentElement.innerHTML = d;checkContent(_doc,over);});}else over();};checkContent(data,()=>{cb(content)});return false;
body>>let title="俞亮/时光",chs=[];item.querySelectorAll("ul.list>li>a").forEach(a=>{if(a.children[0].innerText.indexOf(title)!=-1)chs.push(a)});return chs.reverse();
主要是
因为我要下载驰星周的漂流街,却发现前人的轮子“【小说】下载脚本”不能用,又不想为这破站 🙃 写规则,而且
我就是看不上霸道总裁修仙穿越你咬我啊指不定它三天两头改个版呢。写个通用规则的脚本,一来可以不用追着数不清的小说站适配修改更新,二来也免去了法律风险。
这个脚本会自动去查找主要内容并下载,不需要写规则。当然如果你家网站广告内容比正文还多我也没办法。
遇到特殊网站还是建议用“【小说】下载脚本”。
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址