您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
寂月神社图片预览下使用的是复用页面,分辨率为300x300,本脚本为自动访问分辨率高的地址并下载图片。
// ==UserScript== // @name 寂月download // @namespace http://tampermonkey.net/ // @version 0.3 // @description 寂月神社图片预览下使用的是复用页面,分辨率为300x300,本脚本为自动访问分辨率高的地址并下载图片。 // @description v0.1版本进入页面后点击“获取”按钮,提示获取完成后点击“下载”按钮;目前仅能同时下载58张以下的图片。 // @description v0.2版本进入页面后点击“获取”按钮,提示获取完成后点击“下载”按钮;目前由于服务器访问数量限制,超过59页将会以一页/s的速度访问(会消耗大量浏览器资源)。 // @description v0.3版本去掉下载按钮,获取链接后自动下载;针对图片过多会某些图片下载失败新增校验按钮,在浏览器无反应后点击校验来查看是否失败(有失败则重新点击获取按钮下载,删掉重复图片即可)。 // @description 本脚本不可用于商业行为,仅限交流自用! // @author 香香不吃饭 // @match https://www.jiyue.pro/* // @require http://code.jquery.com/jquery-1.11.0.min.js // @require https://cdn.bootcss.com/FileSaver.js/1.3.8/FileSaver.min.js // @grant GM_info // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @grant GM_download // @grant GM_log // ==/UserScript== (function() { 'use strict'; //创建隐藏a标签 //var elea = document.createElement("a"); //elea.setAttribute("id", "a"); //elea.textContent="值"; //elea.setAttribute("href", "www.baidu.com"); //创建一个img标签 //var eleimg = document.createElement("img"); //eleimg.setAttribute("id", "img"); // eleimg.textContent="值"; //eleimg.setAttribute("class", "img-fluid lazyloaded"); //创建数组来存储每张图片对应的src var imgUrl = []; //创建下载超时回调数组 var timeOutArr = []; //创建下载失败回调数组 var onErrorArr = []; var button = document.createElement("button"); //创建一个获取图片url按钮 button.setAttribute("id", "btn"); button.setAttribute("type", "button"); button.textContent="获取"; button.style.background = "#b46300"; button.style.color = "white"; button.style.cssText="padding:4px 0;position: absolute;top:-1px;right:45px;width:40px;height:35px"; var button2 = document.createElement("button"); //创建一个校验图片按钮 button2.setAttribute("id", "btn2"); button2.setAttribute("type", "button"); button2.textContent="校验"; button2.style.background = "#b46300"; button2.style.color = "white"; button2.style.cssText="padding:4px 0;position: absolute;top:-1px;right:0px;width:40px;height:35px"; var testdiv = document.getElementById("navbarNav"); testdiv.appendChild(button); testdiv.appendChild(button2); //testdiv.appendChild(elea); //elea.appendChild(eleimg); //eleimg.style.display="none"; //document.getElementById("elea").style.display="none"; var newurl = ""; var pagenum = 0; //图片页数 var imgname = ''; //漫画名称 var x = 1; //拿到当前页面所有预览图片对应的URL var baseUrl = window.location.href; button.onclick = function getimgurl(){ alert("开始获取") pagenum = document.getElementsByClassName('badge badge-pill badge-secondary float-right')[0].innerText; pagenum = pagenum.substr(0,pagenum.length-1); imgname = document.getElementsByClassName('h4 font-weight-bold title mb-2')[0].innerText; //eleimg.setAttribute("alt",imgname); if(pagenum>59){ sleep(1000); }else{ for(let i = 1;i<=pagenum;i++) { newurl = baseUrl + '/'+i geturl(); } } alert("共获取"+pagenum+"页!开始下载!") //console.log(imgUrl) downloadimg(); } function sleep(n){ if(x <= pagenum){ newurl = baseUrl + '/'+x //console.log(x) geturl(); x = x+1 var start = new Date().getTime(); // console.log('休眠前:' + start); while (true) { if (new Date().getTime() - start > n) { break; } } // console.log('休眠后:' + new Date().getTime()); sleep(1000); }else{ console.log("获取完成!") } } //ajax同步请求获取url function geturl(){ $.ajax({ type:'get', url:newurl,//这里是url async: false, //data就是内容了,也就是url网页中的内容 success:function(data){ //正则表达式截取图片url var srcReg = /"(.*?)"/g var arr = data.match(srcReg)[162] arr = arr.substr(1,arr.length-2) imgUrl.push(arr) //console.log(arr) } }); } function downloadimg(){ alert("开始下载!") for(let a=0;a<=imgUrl.length-1;a++){ GM_download({ url:imgUrl[a], name:"picture"+a, onload:function(){ console.log("下载第"+(a+1)+"张成功!") }, onerror:function(e){ console.log("下载第"+(a+1)+"张失败!") console.log(e) onErrorArr.push(imgUrl[a]) }, ontimeout: function(){ console.log("下载第"+(a+1)+"张超时!") timeOutArr.push(imgUrl[a]) }, onprogress:function(e){ //console.log(e) } }) } // GM_download(imgUrl[6],"picture"+6); // GM_download(imgUrl[8],"picture"+8); // GM_download(imgUrl[9],"picture"+9); // GM_download(imgUrl[11],"picture"+11); // GM_download(imgUrl[17],"picture"+17); // GM_download(imgUrl[18],"picture"+18); // GM_download(imgUrl[20],"picture"+20); // GM_download(imgUrl[33],"picture"+33); // GM_download(imgUrl[40],"picture"+40); // GM_download(imgUrl[41],"picture"+41); // GM_download(imgUrl[42],"picture"+42); // GM_download(imgUrl[45],"picture"+45); // GM_download(imgUrl[46],"picture"+46); // GM_download(imgUrl[47],"picture"+47); // GM_download(imgUrl[48],"picture"+48); // GM_download(imgUrl[49],"picture"+49); //GM_download(imgUrl[0],"aaa"); } button2.onclick = function checkfailed(){ if(!onErrorArr.length == 0){ alert("有"+onErrorArr.length+"条图片下载失败!") }else{ alert("未检测到下载失败图片!") } if(!timeOutArr.length == 0){ alert("有"+timeOutArr.length+"条图片下载超时!") }else{ alert("未检测到下载超时图片!") } } //alert("获取完成!") // Your code here... })();