Greasy Fork is available in English.

天猫 图片获取脚本

下载天猫图片

Versión del día 28/12/2016. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name         天猫 图片获取脚本
// @namespace    https://www.tmall.com
// @version      0.8
// @description  下载天猫图片
// @author       Richard He
// @iconURL      http://of7m52aos.bkt.clouddn.com/icon.png
// @match        https://detail.tmall.com/*
// @match        https://detail.tmall.hk/*
// @grant        GM_log
// @grant        GM_setClipboard
// @grant        GM_notification
// @grant        GM_download
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_deleteValue
// ==/UserScript==

    //获取缩略图地址
    var lis = document.getElementsByClassName('tb-thumb')[0].childNodes;
    GM_setValue('c1',1);
    for(var i=0;i<lis.length;i++)
    {
        if(i%2 == 1)
        {
            var thumb = lis[i].childNodes[1].childNodes[0].src;
            var arr = thumb.split(".");
            arr.splice(-2,1);
            var addr = arr.join(".");
            
            //生成按钮
            var buttonR = document.createElement('a');
            buttonR.href = 'javascript:void(0)';
            var tmp = GM_getValue('c1');
            GM_setValue('c1',tmp+1);
            buttonR.title = addr+'-'+tmp;
            buttonR.onclick = function()
            {
                GM_download(this.title.split('-')[0],'s'+this.title.substr(-1,1)+this.title.split('-')[0].substr(-4,4));
            };
            buttonR.target = '_blank';
            buttonR.innerHTML = Math.ceil(i/2);
            buttonR.style.border='1px solid #FF8F1C';
            buttonR.style.display = 'inline-block';
            buttonR.style.width = '32px';
            buttonR.style.height = '32px';
            buttonR.style.lineHeight = '32px';
            buttonR.style.textAlign = 'center';
            buttonR.style.color = '#FF8F1C';
            buttonR.style.margin = '6px 2px';
            document.getElementsByClassName('tb-gallery')[0].appendChild(buttonR);
        }
    }
    GM_deleteValue('c1');

        //分类图
        var jAmount = document.getElementById('J_Amount');
        var tbImg = document.getElementsByClassName('tb-img')[0];
        if(jAmount.nodeName == 'DD'&&typeof(tbImg)!='undefined'&&document.getElementsByClassName('tb-img')[0].childNodes[1].childNodes[1].style.backgroundImage.indexOf('url')>=0)
        {
            var down = document.createElement('dl');
            var dt = document.createElement('dt');
            jAmount.parentNode.parentNode.insertBefore(down,jAmount.parentNode);
            dt.className = 'tb-metatit';
            dt.innerText = '下载分类';
            down.className = 'tb-prop tm-sale-prop tm-clear tm-img-prop';
            down.appendChild(dt);
            var dd = document.createElement('dd');
            down.appendChild(dd);
            var ul = document.createElement('ul');
            ul.className = 'tm-clear J_TSaleProp tb-img ';
            dd.appendChild(ul);
        
            var tbImg = document.getElementsByClassName('tb-img')[0];
            var catLis = document.getElementsByClassName('tb-img')[0].childNodes;
            GM_setValue('c1',1);
            if(tbImg.nodeName == 'UL')
            {
                for(var m=0;m<catLis.length;m++)
                {
                    if(catLis[m].nodeName == 'LI')
                    {

                        var bg = catLis[m].childNodes[1].style.backgroundImage;
                        console.log(typeof(bg));
                        if(bg.indexOf('url')>=0)
                        {
                            var ur= bg.split("(")[1];console.log("ur is"+typeof(ur));
                            var url=ur.split(")")[0];console.log("url is"+typeof(url));
                            var arr1 = url.split(".");
                            arr1.splice(-2,1);
                            var addr1 = arr1.join(".");
                            addr1 =addr1.substring(1,addr1.length-1);

                            //生成按钮
                            var tli = document.createElement('li');
                            var ta = document.createElement('a');
                            ta.href = 'javascript:void(0)';
                            var tmp = GM_getValue('c1');
                            GM_setValue('c1',tmp+1);
                            ta.title = addr1+'-'+tmp;
                            ta.onclick = function()
                            {
                                GM_download("http:"+this.title.split('-')[0],'f'+this.title.substr(-1,1)+this.title.split('-')[0].substr(-4,4));
                            };
                            ta.target = '_blank';
                            ta.style.color = '#FF8F1C';
                            ta.innerText = Math.ceil(m/2);

                            ul.appendChild(tli);
                            tli.appendChild(ta);
                        }
                    }
                }
            }
        }
    //获取详情图
function saveImg(imgsrc,filename)
{
    GM_download(imgsrc,filename+imgsrc.substr(-4,4));
}
    var imgAdrs = new Array();
    var buttonC = document.createElement('a');
    buttonC.href="javascript:void(0);";
    buttonC.onclick = function() 
    {
        var desLis = document.getElementsByClassName('ke-post')[0].childNodes;
        if(typeof(desLis[0]!='undefined'))
        {
            for(var h=0;h<desLis.length;h++)
            {
                if(desLis[h].align == "absmiddle"&&desLis[h].nodeName == 'IMG')
                {
                    imgAdrs.push(desLis[h].src);
                }
                else if(desLis[h].childNodes.length>0)
                {
                    for(var i=0;i<desLis[h].childNodes.length;i++)
                    {
                        if(desLis[h].childNodes[i].nodeName == 'IMG')
                            imgAdrs.push(desLis[h].childNodes[i].src);
                    }
                }
            }
            GM_notification({
                text:'本次将下载 '+imgAdrs.length+ ' 张图片',
                title:'友情提示',timeout:3000},function()
            {
            for(var j=0;j<imgAdrs.length;j++)
            {
                saveImg(imgAdrs[j],""+j);
            }
            });
        } 
    };
    buttonC.target = '_blank';
    buttonC.innerHTML = '获取详情页';
    buttonC.style.zIndex = 666;
    buttonC.style.position = 'fixed';
    buttonC.style.bottom = '0px';
    buttonC.style.right = '200px';
    buttonC.style.border = '1px solid #FF8F1C';
    buttonC.style.padding = '6px 12px';
    buttonC.style.color = '#FF8F1C';
    document.body.appendChild(buttonC);
    
    //图片加边框
    var buttonD= document.createElement('a');
    buttonD.href="javascript:void(0);";
    buttonD.onclick = function() 
    {
            var desLis = document.getElementsByClassName('ke-post')[0].childNodes;
            for(var h=0;h<desLis.length;h++)
            {
                if(desLis[h].align == "absmiddle"&&desLis[h].nodeName == 'IMG')
                {
                    desLis[h].style.borderTop = '4px solid red';
                    desLis[h].style.borderBottom = '4px solid red';
                }
                else if(desLis[h].childNodes.length>0)
                {
                    for(var i=0;i<desLis[h].childNodes.length;i++)
                    {
                        if(desLis[h].childNodes[i].nodeName == 'IMG')
                           desLis[h].childNodes[i].style.borderTop = '4px solid red';
                           desLis[h].childNodes[i].style.borderBottom = '4px solid red';
                    }
                }
            }
    };
    buttonD.target = '_blank';
    buttonD.innerHTML = '图片加边框';
    buttonD.style.position = 'fixed';
    buttonD.style.bottom = '40px';
    buttonD.style.right = '200px';
    buttonD.style.zIndex = 666;
    buttonD.style.border = '1px solid #FF8F1C';
    buttonD.style.padding = '6px 12px';
    buttonD.style.color = '#FF8F1C';
    document.body.appendChild(buttonD);