【重要更新】已全局支持下载解析,不限于首页、分类、详情页等
// ==UserScript== // @name 360软件宝库显示真实下载地址 // @namespace http://tampermonkey.net/ // @version 0.5.2 // @description 【重要更新】已全局支持下载解析,不限于首页、分类、详情页等 // @author AN drew // @match *://baoku.360.cn/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @run-at docuemnt-end // ==/UserScript== function getLink(appid) { GM_xmlhttpRequest({ method: "GET", url: "http://q.soft.360.cn/get_download_url.php?soft_ids="+appid, headers: { //"User-Agent": "",// If not specified, navigator.userAgent will be used. "Accept": "*/*"// If not specified, browser defaults will be used. }, onload: function(response) { var responseXML = null; // Inject responseXML into existing Object (only appropriate for XML content). if (!response.responseXML) { responseXML = new DOMParser() .parseFromString(response.responseText, "text/xml"); } //上面是发送get请求获取xml数据 //var xmltext=response.responseText; var parser=new DOMParser(); var xmlDoc=parser.parseFromString(response.responseText,"text/xml"); //var x=xmlDoc.getElementsByTagName("softs"); if(xmlDoc.getElementsByTagName("durls").length>0) { var pdown=xmlDoc.getElementsByTagName("softs")[0].getElementsByTagName("durls")[0].childNodes[0].nodeValue;//解析获取那个xml中pdown节点的数据 var str=pdown.substring(pdown.indexOf("|http"),);//分割文本 var n=str.split("|") var downlink=new Array();//存放地址,理论上应该够用了 for(var i=0;i<n.length;i++) { if(n[i]!="") { if(n[i].indexOf(";") > -1) { let t=n[i].split(";"); for(let x=0; x<t.length; x++) { downlink.push(t[x]); } } else { downlink.push(n[i]); } } } console.log(downlink) showLinks(downlink); } else if(xmlDoc.getElementsByTagName("durls").length==0) { //alert("没有解析到软件链接,请下载其他软件"); var otherdownlink=new Array(); if($('.ordinary-btn').length>0) { //window.open($('.ordinary-btn').attr('href')); //新页面下载 //window.location.href=$('.ordinary-btn').attr('href'); //当前页面下载 //$('.ordinary-btn').get(0).click(); //普通下载 otherdownlink.push($('.ordinary-btn').attr('href')); } else { //window.open($('li[sid="'+appid+'"] .preventSit a').attr('href')); //新页面下载 //window.location.href=$('li[sid="'+appid+'"] .preventSit a').attr('href'); //当前页面下载,可能多个链接导致404 //$('li[sid="'+appid+'"] .preventSit a').click(); //跳转详情页 let preventSitURL=$('li[sid="'+appid+'"] .preventSit a').attr('href'); if(preventSitURL.indexOf(";") > -1) { let t=preventSitURL.split(";"); for(let x=0; x<t.length; x++) { otherdownlink.push(t[x]); } } else { otherdownlink.push(preventSitURL); } } showLinks(otherdownlink); return; } } }); } function showLinks(downlink) { var $box =$('<div id="box">'+ '<span id="closeBtn">'+ '<svg viewBox="0 0 #### ####" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1126" width="28" height="28"><path d="M512.3 63.9c-247.2 0-447.6 200.4-447.6 447.6S265.1 959 512.3 959s447.6-200.4 447.6-447.6S759.5 63.9 512.3 63.9z m201.4 591.4c15.9 15.9 15.9 41.7 0 57.5-15.9 15.9-41.7 15.9-57.5 0L512.3 569 368.4 712.8c-15.9 15.9-41.7 15.9-57.5 0-15.9-15.9-15.9-41.7 0-57.5l143.9-143.9-143.9-143.8c-15.9-15.9-15.9-41.7 0-57.5 15.9-15.9 41.7-15.9 57.5 0L512.3 454l143.8-144c15.9-15.9 41.7-15.9 57.5 0 15.9 15.9 15.9 41.7 0 57.5L569.8 511.4l143.9 143.9z" fill="#d81e06" p-id="1127"></path></svg>'+ '</span>'+ '</div>'); $("body").append($box); for(var i=0;i<downlink.length;i++) { var link = "<div class='downloadTag'>下载地址"+(i+1)+":</div><br><a href=\""+downlink[i]+"\">"+downlink[i]+"</a><br>" $("#box").append($(link)); } $("#box").fadeIn("fast"); //获取页面文档的高度 var docheight = $(document).height(); //追加一个层,使背景变灰 $("body").append("<div id='greybackground'></div>"); $("#greybackground").css({"opacity":"0.5","height":docheight}); var screenwidth,screenheight,mytop,getPosLeft,getPosTop screenwidth = $(window).width(); screenheight = $(window).height(); //获取滚动条距顶部的偏移 mytop = $(document).scrollTop(); //计算弹出层的left getPosLeft = screenwidth/2 - 260; //计算弹出层的top getPosTop = screenheight/2 - 150; //css定位弹出层 $("#box").css({"left":getPosLeft,"top":getPosTop+mytop}); //当浏览器窗口大小改变时... $(window).resize(function(){ screenwidth = $(window).width(); screenheight = $(window).height(); mytop = $(document).scrollTop(); getPosLeft = screenwidth/2 - 260; getPosTop = screenheight/2 - 150; $("#box").css({"left":getPosLeft,"top":getPosTop+mytop}); }); //当拉动滚动条时... $(window).scroll(function(){ screenwidth = $(window).width(); screenheight = $(window).height(); mytop = $(document).scrollTop(); getPosLeft = screenwidth/2 - 260; getPosTop = screenheight/2 - 150; $("#box").css({"left":getPosLeft,"top":getPosTop+mytop}); }); //点击关闭按钮 $("#closeBtn").click(function() { $("#box").remove(); //删除变灰的层 $("#greybackground").remove(); return false; }); } (function() { 'use strict'; GM_addStyle(` * {margin:0; padding:0;} #box {display:none;position:absolute;width:520px;height:300px;z-index:100001;background:#fff;word-break:break-all; word-wrap:break-word; background:linear-gradient(to bottom, rgb(222,226,232), rgb(234,243,253)); box-shadow:4px 4px 8px rgba(51,51,51,.5); border:1px solid #898989;} #box img {height:25px; width:25px} #box a {font-size:15px; display:block; padding: 0px 16px 0px 16px} #box .downloadTag {margin-top:30px; font-size:20px; padding: 0px 16px 0px 16px; font-family:"Microsoft YaHei","simsun", Arial, Helvetica, sans-serif} #closeBtn {position:absolute;right:10px;top:10px;cursor:pointer; width:25px; height:25px} #greybackground {background:#000;display:block;z-index:100000;width:100%;position:absolute;top:0;left:0;} .banner{display:none!important} .hot{display:none!important} .container{margin:90px auto!important} .pagination{display:none!important} .guide{display:none!important} .cooperationList{display:none!important} .specialListTitle.indexNormalTitle{display:none!important} .specialList.indexList.indexNormalList{display:none!important} `) //更换网页图标 $('head').append('<link rel="icon" href="https://s2.loli.net/2023/04/28/J5he2BPRsmC6tSF.png">') //点击链接弹出窗口 var timer1 = setInterval(function(){ if( $(".js-btn-download").length>0) { $(".js-btn-download").off('click'); $(".js-btn-download").click(function(){ let appid = $(this).attr("data-softid"); getLink(appid); return false; }); clearInterval(timer1); } },500); var timer2 = setInterval(function(){ if( $(".safe-btn-download").length>0) { $(".safe-btn-download").off('click'); $(".safe-btn-download").click(function(){ let appid = $(this).attr("data-softid"); getLink(appid); return false; }); clearInterval(timer2); } },500); var timer3 = setInterval(function(){ if( $(".safeDownloadButton").length>0) { $(".safeDownloadButton").off('click'); $(".safeDownloadButton").click(function(){ let appid = $(this).attr("cid"); getLink(appid); return false; }); clearInterval(timer3); } },500); var timer4 = setInterval(function(){ if( $(".soft-safedown").length>0) { $(".soft-safedown").off('click'); $(".soft-safedown").click(function(){ let appid = $(this).attr("data-softid"); getLink(appid); return false; }); clearInterval(timer4); } },500); })();