Greasy Fork

Greasy Fork is available in English.

下载抖音商城商品图片

使用步骤:打开抖音,进入抖音商城,随便选择一款商品点击分享,然后打开商品链接,此时浏览器可视窗口中会出现两个按钮分别为“下载全部轮播图”、“下载全部详情图”

当前为 2023-06-02 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         下载抖音商城商品图片
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  使用步骤:打开抖音,进入抖音商城,随便选择一款商品点击分享,然后打开商品链接,此时浏览器可视窗口中会出现两个按钮分别为“下载全部轮播图”、“下载全部详情图”
// @author       Aman
// @match       *://haohuo.jinritemai.com/*
// @icon        data:image/png;base64,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
// @license     GPL
// @grant       GM_xmlhttpRequest
// @grant       GM_download
// @grant       GM_addStyle
// ==/UserScript==

(function() {
    'use strict'

    const timer = setInterval(() => {
        try {
            if (isItLoaded()) {
                clearInterval(timer)
                // start...
                createButtonDownloadArea()
                createCarouselDownloadButton()
                createDetailDownloadButton()
                // style
                applyStyle()
            }
        } catch (ignore) {
            // ignore...
        }
    }, 200)

    /**
     * 轮播图和详情图是否已经加载完毕
     * @returns {boolean}
     */
    const isItLoaded = () => {
        const parents = document.querySelector('#container > div.head-figure.default_container > div.head-figure__media-view > div > div').children
        const detailImageUrls = document.querySelectorAll('#container > div.detail-container__components > div.detail-container__sold-content > div.partial-detail-wrapper > div.product-big-img-list img')
        return parents !== undefined && detailImageUrls !== undefined
    }

    /**
     * 创建一个区域,用于存放下载按钮
     */
    const createButtonDownloadArea = () => {
        const buttonDownloadArea = document.createElement('div')
        buttonDownloadArea.id = 'buttonDownloadArea'
        document.documentElement.appendChild(buttonDownloadArea)
    }

    /**
     * 创建轮播图下载按钮
     */
    const createCarouselDownloadButton = () => {
        const downloadButton = document.createElement('button')
        downloadButton.id = 'downloadCarouselImagesButton'
        downloadButton.innerText = '下载全部轮播图'
        downloadButton.onclick = () => {
            downloadCarouselImages()
        }

        const buttonDownloadArea = document.getElementById('buttonDownloadArea')
        buttonDownloadArea.appendChild(downloadButton)
    }

    /**
     * 创建详情图下载按钮
     */
    const createDetailDownloadButton = () => {
        const downloadButton = document.createElement('button')
        downloadButton.id = 'downloadDetailImagesButton'
        downloadButton.innerText = '下载全部详情图'
        downloadButton.onclick = () => {
            downloadDetailImages()
        }

        const buttonDownloadArea = document.getElementById('buttonDownloadArea')
        buttonDownloadArea.appendChild(downloadButton)
    }

    /**
     * 下载轮播图
     */
    const downloadCarouselImages = () => {
        const parents = document.querySelector('#container > div.head-figure.default_container > div.head-figure__media-view > div > div').children
        const arrayChildren = Array.from(parents).map(parent => Array.from(parent.children))
        const imgUrls = arrayChildren.map(item => item.map(i => i.style.backgroundImage))
        const urlRegex = /url\("(.+)"\)/

        imgUrls.forEach(imgUrl => {
            imgUrl.forEach(img => {
                const [, url] = img.match(urlRegex)
                setTimeout(() => {
                    downloadImage2(url, randomFilename('轮播图'))
                }, 600)
            })
        })
    }

    /**
     * 生成一个随机字符串文件名
     * @param prefix 文件名前缀
     * @returns {string}
     */
    const randomFilename = (prefix) => {
        return prefix + '-' + Math.random().toString(36).substring(2, 10)
    }

    /**
     * 下载详情图
     */
    const downloadDetailImages = () => {
        const detailImageUrls = document.querySelectorAll('#container > div.detail-container__components > div.detail-container__sold-content > div.partial-detail-wrapper > div.product-big-img-list img')

        Array.from(detailImageUrls).forEach(detailImage => {
            setTimeout(() => {
                downloadImage2(detailImage.src, randomFilename('详情图'))
            }, 600)
        })
    }

    /**
     * 点击超链接,下载
     */
    const downloadImage2 = (url, filename) => {
        console.log('准备下载文件 ==>>> ', url)
        if (filename === undefined || filename === '') {
            filename = Date.now() + '-file'
        }
        GM_download(url, filename)
    }

    const applyStyle = () => {
        GM_addStyle(
            `
    #buttonDownloadArea {
      position: fixed;
      top: 20%;
      left: 10px;
      z-index: 99999;
      text-align: center;
    }

    #downloadDetailImagesButton, #downloadCarouselImagesButton {
      background-color: #099cee; /* 设置背景颜色 */
      border: none; /* 去掉边框 */
      color: white; /* 设置文字颜色 */
      padding: 10px 20px; /* 设置内边距 */
      text-align: center; /* 文字居中 */
      text-decoration: none; /* 去掉下划线 */
      display: block; /* 设置为行内块级元素 */
      font-size: 16px; /* 设置字体大小 */
      border-radius: 5px; /* 设置圆角 */
      box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2); /* 设置阴影 */
      cursor: pointer; /* 鼠标悬停时显示手型 */
      margin: 10px auto;
    }

    #downloadCarouselImagesButton:hover, #downloadDetailImagesButton:hover {
      background-color: #3e8e41; /* 鼠标悬停时改变背景颜色 */
    }
  `
        )
    }
})();