您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
批量找图代码库,以优优美图网站做执行测试
// ==UserScript== // @name FindSrcPic_lib(uumt测试版) // @namespace https://greasyfork.org/users/14059 // @author setycyas // @homepage http://blog.sina.com.cn/u/1365265583 // @description 批量找图代码库,以优优美图网站做执行测试 // @include http://www.uumt.cc/* // @version 1.00 // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @require http://code.jquery.com/jquery-2.1.1.min.js // @run-at document-end // @license MIT // ==/UserScript== /**************************************** ############ FindSrcPic_lib ################ 批量找图代码库 主函数是FindSrcPic 给出例如uumt之类的图片站的图集首地址(形如http://*.html) 自动获取整个图集的所有图片地址并存放于_FindSrcPic_Result中 每次更新_FindSrcPic_Result都会刷新显示结果的文本框的文本 查找结束前,也可以通过立即显示结果菜单先看看找到的图片地址 如果有些请求没返回,会一直处于查找状态,只能刷新页面恢复 未查找状态了,这是目前的一个不足.但是只要参数正确一般没问题 ****************************************/ var _FindSrcPic_Result="";//存放找到的图片地址 var _FindSrcPic_ResponNum=0;//已返回或超时的响应数目 var _FindSrcPic_IsRunning=0;//是否运行中,0表示非运行中 //添加显示结果的显隐div AddMaskDiv("_FindSrcPic_ResultDiv","<br/><b>找到的图片地址:</b><br/><br/><textarea id=_FindSrcPic_ResultTextArea></textarea><br/>"); $('#_FindSrcPic_ResultTextArea').css({'width':'70%','height':'70%'}); function FindSrcPic(startURL,picSrcReg,picNum){ //查看startURL是否合法 if(!startURL.match(/^http:.*html$/)){ alert("FindSrcPic需要输入格式化的地址才能正确运行!"); return; } //查看是否查找中 if(_FindSrcPic_IsRunning>0){ alert("上次寻找仍进行中,请不要急于重新查找,可尝试先看看已找到的结果"); return; } //开始查找前初始化记录变量 _FindSrcPic_Result=""; _FindSrcPic_ResponNum=0; _FindSrcPic_IsRunning=1; $('#_FindSrcPic_ResultTextArea').val(_FindSrcPic_Result); //开始遍历发送消息,获取图片链接.遍历地址的形式如需改变就改这里 console.log("开始批量发送请求"); for(var i=1;i<picNum+1;i++){ var picURL; if(i==1){ picURL=startURL; }else{ picURL=startURL.substr(0,startURL.length-5)+"_"+i+".html"; } $.get( picURL, {}, function(data) { _FindSrcPic_ResponNum++; var temp2=data.match(picSrcReg); if(temp2){ _FindSrcPic_Result+=temp2[1]+"\n"; $('#_FindSrcPic_ResultTextArea').val(_FindSrcPic_Result); console.log("返回一个成功的请求,找到图片: "+temp2[1]); }else{ console.log("返回一个成功的请求,但找不到图片"); } console.log("目前已返回请求数/总请求数 ="+_FindSrcPic_ResponNum+"/"+picNum); if(_FindSrcPic_ResponNum==picNum){ $('#_FindSrcPic_ResultDiv').css({display:'block'}); _FindSrcPic_IsRunning=0; } } ); console.log("已发送请求: "+picURL); } } //从bodyHTML中,通过picNumReg正则表达式找到图片总数,返回-1表示找不到 function _GetPicNum(bodyHTML,picNumReg){ var temp; if(temp=bodyHTML.match(picNumReg)){ return temp[1]-0; }else{ return -1; } } /**************************************** ############ MaskDiv_lib ################ 显示覆盖原页面的上层div的库 主函数是AddMaskDiv,添加目标div 除了目标div外,内部html的css,绑定函数等需自行 另外处理 ****************************************/ //添加一个隐藏的层,maskDivId为该层的div的Id,maskDivInnerHTML为内部html //至于css则需要在外部添加.函数只管maskDiv的css,以及额外赠送的一个重新隐藏该层的按钮 //最后注册一个GM菜单用于显示该层 function AddMaskDiv(maskDivId,maskDivInnerHTML){ var htmlAppend='<div id=' + maskDivId +">"+maskDivInnerHTML+"<br/> <input type=button id="+maskDivId+"_return value=Return></input><br /></div>"; $('body').append(htmlAppend); $('#'+maskDivId).css({'position':'fixed','left':'10%','top':'10%','width':'70%','height':'70%','background-color':'#ffffff','z-index':'10001','display':'none','text-align':'center','border':'1px solid #00F'}); $('#'+maskDivId+'_return').click(function(){$('#'+maskDivId).css({display:'none'});}); GM_registerMenuCommand('显示'+maskDivId,function(){$('#'+maskDivId).css({display:'block'});}); } /**************************************** 以下是本库在uumt的实现与测试,复制库时不需要复制下面内容 ****************************************/ //注册菜单 GM_registerMenuCommand('uumt找图',uumt_FindPic); console.log("setycyas的批量找图代码库,uumt批量找图测试脚本成功加载!"); function uumt_FindPic(){ //在当前页查找图集的图片总数,修改查找图片总数的方法就改这里的正则表达式 var uumt_PicNum=_GetPicNum(document.getElementsByTagName("body")[0].innerHTML,/<ul><li><a>共(\d+)图:/); if(uumt_PicNum<0){ alert("在本页找不到图片总数信息"); return; } //用当前页地址格式化图集查找的首页地址 var startURL=window.location.href; if(startURL.substr(startURL.length-1,1)=="#"){ startURL=startURL.substr(0,dir.length-1); } if(startURL.substr(startURL.length-1,1)=="/"){ startURL+="index.html"; } console.log("经过格式化,图集首页地址是: "+startURL); //开始查找,修改从网页中提取图片地址的方法,就改这里的正则表达式 FindSrcPic(startURL,/<div class="articleBody">\s{0,1}<p align="center">.*<img[^>]*src="([^>]*jpg)"/,uumt_PicNum); }