文档备案控制台
免费开始使用

影刀RPA实操指南:TEMU商品批量上架与数据采集流程

做TEMU半托管或全托管,每天要批量上架几十个商品,还要采集竞品的价格和销量。TEMU后台操作繁琐,手动上架一个商品要5分钟。

用影刀实现批量上架+数据采集: 读取Excel商品信息 → 自动登录TEMU卖家中心 → 逐条填写上架表单 → 提交并记录结果。同时还能采集竞品数据做分析。

picture.image


整体流程结构

picture.image

子流程职责
A_初始化打开TEMU卖家中心,登录,准备Excel
B_上架主流程循环读取Excel商品列表,调用上架子流程

picture.image | C_填写商品信息 | 在商品发布页面填写标题、价格、库存、图片等 | | C_提交商品 | 点击提交,处理弹窗和错误提示 | | C_采集竞品数据 | 搜索竞品关键词,采集价格和销量 | | D_Excel读写 | 读取待上架列表,写入上架结果 | | D_数据清洗 | 处理价格格式、图片URL等 |

picture.image


第一步:捕获TEMU卖家中心的关键元素

picture.image 先手动捕获以下元素(XPath参考):

# 1. 登录页:账号输入框
//input[@type='text' and contains(@placeholder,'邮箱/手机号')]

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/f21489f926914104a2d4f403bbf0cd70~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1782115163&x-signature=JLTTC7cWOD1gIhTV805SRcqXgQw%3D)

# 2. 密码输入框
//input[@type='password']

# 3. 登录按钮

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/73807350c3a64dc894037adba7b4d850~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1782115163&x-signature=gjYqzQg25uBLQRz3M8eA2zTyod8%3D)
//button[contains(@class,'login-btn')]

# 4. 卖家后台:商品管理菜单
//*[contains(text(),'商品管理')]


![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/0749ed568fac4db0871cee6cef5f511d~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1782115163&x-signature=%2Fg1PkycC1QmEKXQtmaixupG9T%2BY%3D)
# 5. 发布商品按钮
//button[contains(text(),'发布商品')]

# 6. 商品标题输入框
//input[@placeholder='商品标题' or contains(@class,'title')]

# 7. 价格输入框(美元)
//input[@name='price' or contains(@placeholder,'价格')]

# 8. 库存输入框
//input[@name='stock' or contains(@placeholder,'库存')]

# 9. 类目选择器(可能是一级、二级、三级)
//div[contains(@class,'category-select')]

# 10. 提交按钮
//button[contains(text(),'提交') or contains(text(),'发布')]

# 11. 商品图片上传区域(可能需要点击+上传文件)
//div[contains(@class,'upload-area')]

# 12. 采集时:搜索结果页商品卡片
//div[contains(@class,'goods-card')]

⚠️ 注意:TEMU后台经常更新class,以上XPath用了contains匹配稳定文字。如果捕获时失效,改用页面上的固定文字(如按钮文本)定位。

picture.image

第二步:登录TEMU卖家中心

A_登录TEMU子流程:

流程参数:
  - 输入:账号、密码
  - 输出:是否成功

输出日志("【登录】开始")

打开网页("https://seller.temu.com/")
等待元素出现("账号输入框", 超时=10)

输入文本(账号输入框, ${账号}, 模式="输入文本")
输入文本(密码输入框, ${密码}, 模式="输入文本")
点击元素("登录按钮", 模式="模拟鼠标点击")

# 等待登录跳转完成(出现卖家中心首页元素)
Try:
    等待元素出现("商品管理菜单", 超时=15)
    输出日志("【登录】成功")
    返回 True
Catch:
    输出日志("【登录】失败,可能验证码或账号错误")
    屏幕截图("temu_login_error.png")
    返回 False

处理登录验证码:TEMU有时会弹出滑块验证码,影刀社区版无法自动处理。建议:

  • 首次登录时手动过验证码,保持登录态
  • 或使用创业版的“验证码识别”模块

保持登录态的技巧:在A_初始化里先判断是否已登录(检查是否存在“商品管理菜单”),如果已登录就不重新登录。


第三步:批量上架商品(核心)

picture.image Excel表格结构(待上架列表):

标题价格(USD)库存类目图片URL描述
无线鼠标12.99200电子产品https://...静音省电

B_上架主流程

# 1. 登录
调用子流程(A_登录TEMU) → ${登录成功}
如果 ${登录成功} == False:
    输出日志("登录失败,终止")
    停止流程()

# 2. 读取待上架列表
打开Excel("待上架商品.xlsx")
读取区域数据(起始行=2, 起始列=1, 结束列=6) → ${商品列表}
关闭Excel()

输出日志("共" + ${商品列表}.长度 + "个商品待上架")

# 3. 循环上架
${成功数} = 0
${失败数} = 0
${失败记录} = 创建空列表()

列表循环(${商品列表}):
    ${当前商品} = 当前项
    ${标题} = ${当前商品}[0]
    ${价格} = ${当前商品}[1]
    ${库存} = ${当前商品}[2]
    ${类目} = ${当前商品}[3]
    ${图片URL} = ${当前商品}[4]
    ${描述} = ${当前商品}[5]
    
    输出日志("【上架】" + ${标题})
    
    # 调用上架子流程
    调用子流程(C_单个商品上架, 
        输入参数=[${标题}, ${价格}, ${库存}, ${类目}, ${图片URL}, ${描述}]
    ) → ${上架结果}
    
    如果 ${上架结果} == "成功":
        ${成功数} = ${成功数} + 1
    否则:
        ${失败数} = ${失败数} + 1
        添加元素到列表(${失败记录}, ${标题})
    
    # 两个商品之间间隔几秒,避免风控
    固定等待(3)

# 4. 写入上架结果
打开Excel("上架结果.xlsx")
追加行到表格(["执行时间", "成功数", "失败数", "失败列表"])
追加行到表格([获取当前时间(), ${成功数}, ${失败数}, ${失败记录}])
关闭Excel()

输出日志("上架完成,成功${成功数},失败${失败数}")

第四步:单个商品上架的具体操作

C_单个商品上架子流程:

流程参数:
  - 输入:标题, 价格, 库存, 类目, 图片URL, 描述
  - 输出:结果("成功"/"失败"# 进入商品发布页面
Try:
    # 点击“商品管理” -> “发布商品”
    # 注意:如果已经在发布页面,跳过
    点击元素("商品管理菜单")
    固定等待(1)
    点击元素("发布商品按钮")
    等待元素出现("商品标题输入框", 超时=10)
Catch:
    输出日志("无法进入发布页面")
    返回 "失败"

# 填写标题
输入文本("商品标题输入框", ${标题}, 模式="模拟输入")

# 选择类目(多级,比较复杂,此处简化)
# 实际需要一级一级点击,根据传入的类目名匹配
调用子流程(C_选择类目, 输入参数=${类目})

# 填写价格和库存
输入文本("价格输入框", ${价格})
输入文本("库存输入框", ${库存})

# 上传图片(TEMU支持URL上传或本地文件)
# 方法1:如果图片URL可用,找到“从URL添加”按钮,输入URL
Try:
    点击元素("从URL添加图片按钮")
    输入文本("图片URL输入框", ${图片URL})
    点击元素("确认添加")
Catch:
    输出日志("图片上传失败,跳过")

# 填写描述
输入文本("描述输入框", ${描述})

# 提交
点击元素("提交按钮", 模式="模拟鼠标点击")

# 处理提交后的弹窗(如“提交成功”或“请填写xxx”)
Try:
    等待元素出现("提交成功提示", 超时=5)
    输出日志("上架成功:" + ${标题})
    返回 "成功"
Catch:
    # 可能有错误提示,截图记录
    屏幕截图("error_" + ${标题} + ".png")
    输出日志("上架失败:" + ${标题})
    # 尝试关闭错误弹窗
    Try: 点击元素("关闭按钮", 超时=2) Catch: 无操作
    返回 "失败"

选择类目的子流程(C_选择类目:TEMU类目是三级联动,可以用等待元素出现+点击元素逐级选择。传入类目名如“电子产品>电脑>鼠标”,用split分割后依次点击。


第五步:采集竞品数据(可选)

在上架前或上架后,可以采集竞品同类商品的售价和销量,用于定价参考。

C_采集竞品数据子流程:

流程参数:
  - 输入:搜索关键词
  - 输出:竞品列表(价格、销量)

# 在TEMU前台搜索
打开网页("https://www.temu.com/")
等待元素出现("搜索框")
输入文本(搜索框, ${关键词}, 模式="模拟输入")
点击搜索按钮
等待元素出现("商品卡片", 超时=8)

# 滚动加载(TEMU前台也是无限滚动)
调用子流程(C_滚动加载前台)

# 获取所有商品卡片
获取相似元素列表("商品卡片") → ${卡片列表}

${竞品结果} = 创建空列表()

元素列表循环(${卡片列表}):
    相对于元素(当前卡片) → 捕获价格元素 → ${价格元素}
    ${价格} = 获取文本(${价格元素})
    
    相对于元素(当前卡片) → 捕获销量元素 → ${销量元素}
    ${销量文本} = 获取文本(${销量元素})
    # 清洗销量(如“1.2万件”)
    调用子流程(D_清洗销量, 输入=${销量文本}) → ${销量数}
    
    添加元素到列表(${竞品结果}, [${价格}, ${销量数}])

输出日志("采集到" + ${竞品结果}.长度 + "个竞品")
返回 ${竞品结果}

销量清洗Python代码:

import re
def clean_sales(text):
    text = str(text)
    if '万' in text:
        num = re.search(r'[\d.]+', text)
        if num:
            return int(float(num.group()) * 10000)
    else:
        num = re.search(r'\d+', text)
        return int(num.group()) if num else 0
    return 0

完整流程组合(上架+采集)

如果你想上架前先看竞品价格,可以这样:

# 1. 登录TEMU卖家中心
调用子流程(A_登录TEMU)

# 2. 读取待上架商品列表
${商品列表} = 调用子流程(D_读取Excel)

# 3. 对每个商品,先采集竞品价格,再决定定价
列表循环(${商品列表}):
    ${商品名} = 当前项.标题
    # 采集竞品
    ${竞品} = 调用子流程(C_采集竞品数据, 输入=${商品名})
    # 计算平均售价
    ${均价} = 调用子流程(D_计算均价, 输入=${竞品})
    # 定价 = 均价 * 0.9(比竞品便宜10%)
    ${定价} = ${均价} * 0.9
    # 上架
    调用子流程(C_单个商品上架, 输入=[${商品名}, ${定价}, ...])

常见问题速查

问题原因解决方法
登录出现滑块验证TEMU风控手动过验证后保持登录态;或用创业版+打码平台
类目选择失败类目树结构变化contains(text(),'类目名')模糊匹配
图片上传失败URL不可访问或格式不支持先下载图片到本地,用文件上传方式
提交后提示“请填写xxx”必填项漏了检查是否有必填字段(如重量、尺寸),在流程中补充
上架速度太快被限频繁提交每个商品间隔5-10秒,模拟人类速度
采集竞品时被封IP频繁搜索换IP或用代理;每个关键词间隔10秒以上
社区版30分钟不够上架一个商品约2分钟升级创业版,或分批上架

TEMU上架的注意事项

  1. 必填字段检查:除了标题、价格、库存,TEMU可能要求填写重量、尺寸、商品属性(颜色、尺寸)。在Excel里把这些字段也加进去。

  2. 图片要求:TEMU要求图片至少800x800像素,白底。如果URL图片不符合,需要先下载处理再上传。

  3. 价格单位:TEMU前台显示美元,价格输入框通常也是美元。注意汇率转换(如果Excel里是人民币)。

  4. 类目ID:直接点选类目比文字匹配更稳。可以用获取相似元素列表获取类目选项,用文字匹配点击。

  5. 库存预警:上架后定期采集库存,低于安全值自动发飞书通知(参考选题31)。


推荐资源

  • TEMU卖家中心官方帮助文档:搜索“商品发布API”(如果有API权限,比RPA更稳定)
  • 影刀官方应用市场:搜索“TEMU”,有上架模板(部分付费)
  • 飞书通知联动:参考本系列选题31《飞书表格自动读写与消息通知联动》,在上架成功/失败时发消息到群

我的建议:TEMU后台改版频繁,上线后每周检查一次元素是否失效。最好将关键元素捕获后存为“元素库”,定期批量测试。另外,创业版用户可以考虑用“手机自动化”配合TEMU商家App,有时App端操作更稳定。


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论