引言 / 背景
在管理 Temu 店铺库存时,我们经常需要获取每个 SKU 的库存和货值,但系统自带导出功能有限:
-
分页数据无法一次性抓取
-
多 SKU 商品需要手动统计
-
手动计算货值效率低、容易出错
为了解决这个问题,我开发了一个 油猴脚本,可以自动抓取所有分页数据,计算库存货值,并导出 CSV 文件,极大提高工作效率。
脚本功能概览
功能亮点
-
自动遍历 Temu 库存管理页面的所有分页
-
提取商品名称、SKC、SKU、申报价格、各类库存数量
-
自动计算每个 SKU 的货值
-
一键导出 CSV 文件,字段齐全
使用步骤
步骤 1:安装油猴(已经有的可以跳过)
1. 点击右上角三个点


2. 打开浏览器插件商店,搜索 油猴 并安装


3. 安装完成后,在浏览器工具栏可以看到 Tampermonkey 图标

步骤 2:创建新脚本
1. 点击油猴后会出现这个界面,点击添加新脚本

2. 将以下代码复制到编辑器中
// ==UserScript==
// @name Temu 自动抓取 SKU 库存并导出货值
// @namespace http://tampermonkey.net/
// @version 2025-08-18
// @description 在 Temu 销售管理页面自动抓取所有商品 SKU 信息及库存数据,计算货值并导出为 CSV 文件
// @author kiki
// @match https://agentseller.temu.com/stock/fully-mgt/sale-manage/main*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function createExportButton() {
const btn = document.createElement('button');
btn.innerText = '导出货值';
btn.style.position = 'fixed';
btn.style.top = '100px';
btn.style.right = '20px';
btn.style.zIndex = '9999';
btn.style.padding = '10px 15px';
btn.style.backgroundColor = '#ff6600';
btn.style.color = '#fff';
btn.style.border = 'none';
btn.style.borderRadius = '5px';
btn.style.cursor = 'pointer';
btn.addEventListener('click', exportAllPages);
document.body.appendChild(btn);
}
function exportCSV(data) {
const header = ['商品名称','SKC','SKU','申报价格','仓内可用库存','仓内暂不可用库存','已发货库存','货值'];
const rows = data.map(item => [
item.name,
item.skc,
item.sku,
item.price,
item.available,
item.unavailable,
item.shipped,
item.value.toFixed(2)
]);
const csvContent = [header, ...rows].map(e => e.join(",")).join("\n");
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const url = URL.createObjectURL(blob);
const a = document.createElement('a');
a.href = url;
a.download = 'temu_sku_sale_value.csv';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
}
function parseNumber(str) {
return parseFloat(str.replace(/[^\d.]/g,'')) || 0;
}
function parseIntNumber(str) {
return parseInt(str.replace(/[^\d]/g,'')) || 0;
}
async function exportAllPages() {
let allData = [];
let pageIndex = 1;
let lastName = '';
let lastSkc = '';
while(true) {
console.log('抓取第', pageIndex, '页');
await new Promise(r => setTimeout(r, 1500));
const rows = document.querySelectorAll('tr[data-testid="beast-core-table-body-tr"]');
if (rows.length === 0) {
alert('未找到表格数据,请确保当前页已加载');
return;
}
rows.forEach(row => {
try {
const infoDiv = row.querySelector('.main_productInfo__cHqsm');
// 获取商品名称和 SKC
if(infoDiv){
const pList = infoDiv.querySelectorAll('p');
if(pList.length > 1){
lastName = pList[1].innerText.trim();
} else if(pList.length === 1){
lastName = pList[0].innerText.trim();
}
const skcMatch = infoDiv.innerText.match(/SKC:(\d+)/);
if(skcMatch) lastSkc = skcMatch[1];
}
const tds = row.querySelectorAll('td');
// ===== 动态选择库存列索引 =====
let available = 0, unavailable = 0, shipped = 0;
if(infoDiv){
// 有商品名称和 SKC
available = parseIntNumber(tds[16]?.innerText || '0');
unavailable = parseIntNumber(tds[18]?.innerText || '0');
shipped = parseIntNumber(tds[19]?.innerText || '0');
} else {
// 无商品名称和 SKC
available = parseIntNumber(tds[13]?.innerText || '0');
unavailable = parseIntNumber(tds[15]?.innerText || '0');
shipped = parseIntNumber(tds[16]?.innerText || '0');
}
// 获取价格列,假设 td 包含 '¥'
let price = 0;
tds.forEach(tdPrice => {
const t = tdPrice.innerText.trim();
if(t.includes('¥')) price = parseNumber(t);
});
// 获取 SKU 和规格
tds.forEach(td => {
const skuPList = td.querySelectorAll('p.main_subLine__DFGB2');
skuPList.forEach(p => {
if(p.innerText.includes('SKU ID')){
const prevText = p.previousElementSibling ? p.previousElementSibling.innerText.trim() : '';
const specText = prevText ? prevText + ' ' + p.innerText.trim() : p.innerText.trim();
allData.push({
name: lastName,
skc: lastSkc,
sku: specText,
price,
available,
unavailable,
shipped,
value: price * (available + unavailable + shipped)
});
}
});
});
} catch(e) {
console.log('解析行出错', e, row);
}
});
// 翻页
const nextBtn = document.querySelector('li[data-testid="beast-core-pagination-next"]');
if (!nextBtn || nextBtn.classList.contains('PGT_disabled_5-118-0')) {
console.log('已到最后一页');
break;
} else {
nextBtn.click();
pageIndex++;
await new Promise(r => setTimeout(r, 2000));
}
}
exportCSV(allData);
}
window.addEventListener('load', createExportButton);
})();
3. 保存并启用代码


步骤 3:使用脚本抓取数据
1. 打开 Temu 销售管理页面,点击设置表格列(原本就没有调整过的可以跳过这一步)

2. 按需选择要查询的商品信息(这里选择的已加入站点的商品)-> 选择每页40条(提升自动翻页速度)-> 点击导出货值,脚本开始自动抓取所有分页数据
3. 稍等几秒,CSV 文件会自动下载
步骤 4:查看 CSV 文件
1. 打开下载的 CSV 文件

2. 用wps打开,调整表格样式


3. 最终样式,查看商品名称、SKC、SKU、申报价格、各类库存以及自动计算的货值

4. 可直接在 Excel 或其他工具中进行统计分析
总结 / 使用价值
通过这个脚本:
-
电商运营人员无需手动翻页统计 SKU
-
自动计算货值,数据准确、减少人工错误
-
CSV 文件方便进一步分析、生成报表
总之,这个工具能大幅提高 Temu 店铺库存管理效率,节省时间,适合每日或每周定期使用。
参考资料
2242




被折叠的 条评论
为什么被折叠?



