// ==UserScript== // @name 拼多多导出訂單油猴脚本 PDD order lists export to excel GreaseMonkey script // @namespace https://www.pinduoduo.com/ // @version 1.5 // @description 导出拼多多订单信息 // @author ForkedFrom吾愛破解yiqifeng // @match https://mobile.yangkeduo.com/orders.html* // @match https://mobile.pinduoduo.com/orders.html* // @grant GM_download // @run-at document-end // @license MIT // @downloadURL https://update.greasyfork.icu/scripts/529039/%E6%8B%BC%E5%A4%9A%E5%A4%9A%E5%AF%BC%E5%87%BA%E8%A8%82%E5%96%AE%E6%B2%B9%E7%8C%B4%E8%84%9A%E6%9C%AC%20PDD%20order%20lists%20export%20to%20excel%20GreaseMonkey%20script.user.js // @updateURL https://update.greasyfork.icu/scripts/529039/%E6%8B%BC%E5%A4%9A%E5%A4%9A%E5%AF%BC%E5%87%BA%E8%A8%82%E5%96%AE%E6%B2%B9%E7%8C%B4%E8%84%9A%E6%9C%AC%20PDD%20order%20lists%20export%20to%20excel%20GreaseMonkey%20script.meta.js // ==/UserScript== const $ = (selector) => document.querySelector(selector); $('body').insertAdjacentHTML('beforeend', '
导出数据
'); $('#export').addEventListener('click', startScrolling); function startScrolling() { let scrollInterval = setInterval(function () { let text = $('.rbl-loading-text').textContent; console.log(text); if (text === "没有更多了...") { clearInterval(scrollInterval); fetchDataAndExport(); } window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' }); }, 800); } function fetchDataAndExport() { let order = []; let listOrder = [...$('#base-list0>.react-base-list').children]; listOrder.forEach(row => { order.push(row.innerText.split('\n\n')); }); exportToCSV(order); } function exportToCSV(order) { let orderlist = '店铺名称,交易状态,商品名称,型号分类,价格,数量,实际付款\r\n'; order.forEach(row => { console.log(row); let isPrice = row[3] && row[3].charAt(0) === "¥"; row = row.map(cell => cell.replace(/\r|\n|\r\n|\n\r|\t|,|¥/ig, "")); if (isPrice) { let priceMatch = row[3].match(/(\d+\.?\d*)(×|x)(.*)/); let price = priceMatch ? [priceMatch[1], priceMatch[3]] : [row[3], '']; let fields = [row[0], row[1], row[2], 'null', price[0], price[1], row[5]]; orderlist += fields.join(',') + '\r\n'; } else { let priceMatch = row[4].match(/(\d+\.?\d*)(×|x)(.*)/); let price = priceMatch ? [priceMatch[1], priceMatch[3]] : [row[4], '']; let fields = [row[0], row[1], row[2], row[3], price[0], price[1], row[6]]; orderlist += fields.join(',') + '\r\n'; } }); const uri = 'data:text/csv;charset=utf-8,\ufeff' + encodeURIComponent(orderlist); const link = document.createElement("a"); link.href = uri; link.download = '拼多多订单数据.csv'; link.click(); }