影刀RPA新手教程:办公电商社媒全场景自动化攻略——不同岗位的影刀RPA实战方案
影刀RPA新手教程:办公电商社媒全场景自动化攻略——不同岗位的影刀RPA实战方案
公司里不同岗位的同事来问我影刀怎么用,我发现一个问题。
做电商运营的关注的是"能不能帮我批量上架商品",做财务的想的是"能不能帮我自动对账",做自媒体的只关心"能不能帮我批量发文章"。
同样一个工具,不同岗位的用法完全不一样。
这篇文章按岗位分类,每个岗位给你一个完整的实战方案,看完直接能干活。
一、认识影刀
影刀是一个桌面RPA工具,模拟你操作电脑的一切行为。
点鼠标、敲键盘、打开网页、填表格、复制粘贴、下载文件、发消息——你能做的,影刀基本都能替代你做。
社区版免费下载安装。装完后记得装浏览器插件,网页自动化全靠它。
界面分四个区:左边指令面板(拖指令的地方)、中间流程编辑区(搭流程的地方)、右边属性面板(设参数的地方)、底部运行日志(看出错的地方)。
不用全记住,你大多数时间都只在中间的流程编辑区拖指令。
每次帮同事装,我都会叮嘱一句:“插件一定要装,不然网页操作全报错。”
二、运营岗:数据采集与竞品监控方案

运营最痛的点是什么?每天打开十几个网页,复制粘贴数据。
核心技能:元素定位
运营场景的自动化,90%靠元素定位。你不需要懂代码,会用"元素捕获"就够了。
打开影刀的"元素捕获",鼠标移到网页上你想抓的地方,影刀自动识别。
有四种定位方式:
元素捕获(最推荐):鼠标点一下,影刀生成选择器。存到元素库后,以后直接拖出来用。
XPath:就是给元素写"地址"。比如淘宝搜索框可以写成:
//input[@id='q']
这个写法是说:找到页面上id是"q"的input标签。@表示属性,//表示任意层级。
和它并列的还有CSS选择器,写法更像HTML:
input#q
input[placeholder="搜索"]
.product-item > .title
CSS写法更短,XPath功能更强(能匹配文本内容)。我实际使用中两种混着来,简单定位用CSS,复杂匹配用XPath。
正则表达式:提取价格、日期、手机号这类有固定格式的文本。比如从"原价199元"里提取数字:\d+。
我第一次学的时候,在正则上卡了一上午。后来发现记住三个最常用的模式就够:\d+(数字)、.+(任意字符)、[a-zA-Z]+(字母)。

实战:竞品价格监控
每天自动采集竞品商品价格,存入Excel,价格变化超阈值发飞书通知。
流程设计:
打开网页 → 获取页面对象 → 搜索商品关键词 → 等待搜索结果加载 →
获取商品列表(相似元素) → 循环提取标题和价格 →
写入Excel → 与昨天数据对比 → 变化超阈值发飞书通知
关键指令清单:
| 步骤 | 指令 | 说明 |
|---|---|---|
| 打开网页 | 打开网页/获取已打开的网页对象 | 获取浏览器实例 |
| 搜索 | 填写输入框 + 点击网页元素 | 输入关键词搜索 |
| 等待 | 等待网页元素出现 | 等搜索结果加载完,别用sleep |
| 采集 | 获取相似元素列表 + For Each循环 | 批量获取商品信息 |
| 提取文本 | 获取元素文本 / 获取元素属性 | 拿标题和价格文字 |
| 写入 | 写入Excel | 行号用变量自增 |
一个要留意的点:如果页面有弹窗,先判断弹窗是否存在,存在就关闭。
from xbot import web
browser = web.get_active()
if browser.is_element_displayed('登录弹窗'):
browser.find('关闭弹窗按钮').click()
翻页采集多页时,每翻一页都要重新获取相似元素列表,用For次数循环而不是For Each。
因为翻页后DOM更新了,老的元素引用已经无效。这是新手最容易踩的坑,我第一次做的时候翻到第二页就报"未找到指定ID的元素",查了一下午。
拼多多店群自动化上架方案
三、客服岗:批量处理与自动回复方案
客服每天要处理大量重复问题:查物流、改地址、发话术。
核心技能:变量与流程控制

变量类型:字符串(文本)、数字、列表(['商品A','商品B'])、字典({'order_id':'12345'})。
客服场景最常用的是字符串变量,用来存订单号、客户消息、回复话术。
If判断:根据条件走不同分支。
order_status = get_order_status(order_id)
if order_status == '待发货':
reply = '您的订单正在仓库拣货中,预计今天发出'
elif order_status == '已发货':
reply = f'您的包裹已发出,快递单号:{tracking_number}'
else:
reply = '已为您转接人工客服'
For循环:批量处理用户消息列表、订单列表。每条拿出来单独处理。
Try-Catch:处理异常不中断。客服场景里最重要的一点——处理某个订单时出错,不能影响其他订单的处理。
for order in pending_orders:
try:
process_order(order)
except Exception as e:
print(f'订单{order["id"]}处理失败: {e}')
continue
实战:多平台订单状态批量查询
电商客服要在淘宝、京东、拼多多来回切换查订单信息。
方案:用一个统一流程,依次打开各平台后台 → 输入订单号搜索 → 提取物流/状态信息 → 汇总到Excel → 飞书通知异常订单。
子流程设计:每个平台写独立子流程(“查淘宝订单”、“查京东订单”),主流程按需调用。
这样做的好处:淘宝后台改版了只改淘宝子流程,不影响京东和拼多多。
四、财务岗:报表处理与数据录入方案
财务最浪费时间的是:Excel数据的整理、核对、录入系统。

核心技能:数据处理
Excel读写:
from xbot import excel
# 读取
data = excel.read('D:\\报表.xlsx')
# 写入(传入二维列表)
excel.write('D:\\输出.xlsx', [
['项目', '金额', '日期'],
['办公费', 1280, '2026-06-01'],
['差旅费', 3500, '2026-06-02']
])
JSON解析:系统接口大多返回JSON,学会解析JSON是财务自动化的基本功。
import json
response = '{"status":"success","invoices":[{"no":"INV001","amount":5000}]}'
data = json.loads(response)
for invoice in data['invoices']:
print(invoice['no'], invoice['amount'])
数据库连接:部分财务系统可以直接连数据库查询,比走网页快得多。
实战:发票信息自动录入
财务每天要把发票信息逐条录入报销系统。
流程:读取发票Excel → 循环每行 → 打开报销系统网页 → 逐字段填写表单 → 提交 → 记录结果。
from xbot import excel, web
def main(args):
invoices = excel.read('D:\\发票数据.xlsx')
browser = web.get('报销系统', None, 'chrome')
success_count = 0
fail_list = []
for row in invoices:
try:
# 依次填写各字段
browser.find('发票号码').input_text(row[0])
browser.find('开票日期').input_text(row[1])
browser.find('发票金额').input_text(row[2])
browser.find('提交按钮').click()
# 等待提交完成
browser.wait_appear('提交成功提示', timeout=10)
success_count += 1
except Exception as e:
fail_list.append({'发票号': row[0], '原因': str(e)})
continue
print(f'成功录入{success_count}条,失败{len(fail_list)}条')
用Try-Catch包住核心操作,出错时记录并跳过。我帮财务同事做这个流程时,没加Try-Catch,跑到第36条时网页超时,前面35条白跑了。
核心技能:判断与循环的配合
财务场景经常需要条件判断:金额大于5000走审批流程,小于5000直接入账。
If嵌套循环:外层循环遍历发票,内层根据金额走不同分支。

弹窗与加载处理
报销系统常弹"确认提交"、"操作成功"等弹窗。用"等待网页元素出现"等弹窗,再用"点击网页元素"点确认。
页面加载慢也要处理:browser.wait_load_completed(timeout=30)等页面完全加载。
五、电商岗:全平台数据采集与批量操作方案
电商是影刀用量最大的场景。
核心技能:网页自动化全流程
等待策略:电商网站页面复杂,加载慢。固定sleep不靠谱。
browser = web.get('淘宝', None, 'chrome')
browser.wait_appear('商品列表区域', timeout=30) # 等商品列表出来
browser.wait_load_completed() # 等页面完全加载
翻页处理:获取"下一页"按钮元素,判断是否可点击。最后一页时按钮会消失或带disabled属性。
while True:
# 采集当前页数据...
next_btn = browser.find('下一页按钮')
if not next_btn.is_enabled():
break # 最后一页,退出循环
next_btn.click()
browser.wait_appear('商品列表区域') # 等新页面加载
懒加载:滚动到页面底部触发加载更多内容。
for _ in range(20): # 滚动20次
browser.scroll_to(location='bottom', behavior='smooth')
sleep(2) # 等新内容加载
iframe:有些电商页面的评价区在iframe里。需要先"切换到iframe"再操作内部元素,完事后"切回默认页面"。
弹窗处理:电商网站弹窗特别多——登录弹窗、优惠券弹窗、新人引导弹窗。

# 关闭各种弹窗
def close_popups(browser):
popup_selectors = ['登录弹窗关闭', '优惠券关闭', '新人引导关闭']
for selector in popup_selectors:
if browser.is_element_displayed(selector):
browser.find(selector).click()
实战:淘宝/京东/拼多多商品信息采集
采集方案:打开搜索页 → 获取商品列表相似元素 → 循环提取标题、价格、销量、店铺名 → 翻页 → 写入Excel。
淘宝采集:建议走网络监听路线。
browser = web.get_active()
browser.start_monitor_network() # 开始监听
browser.reload()
# 获取XHR类型的接口响应
responses = browser.get_responses(url='api', use_wildcard=True, resource_type='XHR')
for resp in responses:
data = json.loads(resp['response_body'])
# 解析data提取商品信息...
browser.stop_monitor_network()
接口监听比DOM解析更稳定,不受页面改版影响。get_responses支持按URL过滤和资源类型过滤,resource_type可选XHR/Script/Document/Fetch等。
京东图片采集:京东详情页图片在style里而不是src里。
function (element, input) {
var url = getComputedStyle(element, null)['background-image'];
return url.substr(5, url.length - 7)
}
这个坑我查了好久才从官方文档找到解法。
批量操作:自动上架/下架/改价
电商运营每天要批量操作商品。方案:读Excel里的商品列表 → 循环打开后台编辑页 → 修改价格/库存 → 提交。
用For次数循环+每次重新获取元素的方式保证稳定性。
核心技能:HTTP/API
电商平台一般有商家API,直接调接口比走网页自动化快得多。

from xbot import http
import json
# 调用平台API
resp = http.post('https://api.platform.com/items/update',
headers={'Authorization': 'Bearer xxx'},
json={'item_id': '12345', 'price': 99.00}
)
result = json.loads(resp.text)
能走API就不要走网页自动化。API稳定、快速、不受页面改版影响。网页自动化是API走不通时的备选方案。
六、自媒体岗:内容分发与数据统计方案
核心技能:图像与ADB自动化
图像自动化:公众号后台、一些后台系统的元素可能捕获不到,只能用图像识别定位。
具体做法:截取一张按钮的参考图(如"发布"按钮),影刀在屏幕上找到它的位置,移动鼠标点击。
但要明白:图像自动化的稳定性最低。分辨率变了、窗口位置变了、按钮样式改了都会失效。能走元素定位就别用图像。
ADB(手机自动化):小红书、抖音这些主要用手机操作的平台,需要手机自动化。
import xbot
session = xbot.mobile.connect_by_custom_name('我的安卓手机')
# 查找元素
element = session.find('发布按钮')
# 滑动
session.swipe(500, 1200, 500, 200) # 向上滑动
# 截图
session.screenshot('D:\\截图\\')
# 获取页面源码(XML结构)
page_source = session.get_page_source()
手机端也支持完整的元素查找:find_by_xpath、find_by_id、find_by_accessibility_id、find_by_label_name。
实战:多平台内容一键分发
写完一篇文章,要发到公众号、知乎、掘金、CSDN四个平台。
流程:打开各平台后台 → 填入标题和正文 → 上传封面图 → 点击发布。
关键指令:填写输入框填标题、获取元素文本拿草稿内容、上传文件传封面图。

TEMU店群如何管理运营?
懒加载的处理:有些平台的编辑器是动态加载的(如微信公众号的富文本编辑器),需要等编辑器完全加载后再填入内容。用wait_appear等编辑器工具栏出现。
实战:小红书数据采集
小红书网页版需要登录,且内容滚动加载。
browser = web.get_active()
# 处理登录弹窗
if browser.is_element_displayed('登录弹窗关闭'):
browser.find('登录弹窗关闭').click()
# 搜索关键词
browser.find('搜索框').input_text('影刀RPA')
browser.find('搜索按钮').click()
browser.wait_appear('搜索结果列表')
# 滚动加载更多
for i in range(10):
browser.scroll_to(location='bottom', behavior='smooth')
小红书页面用Vue/React渲染,元素属性是动态的。建议用XPath按文本内容定位:
//span[contains(text(), '笔记标题')]
//div[contains(@class, 'note-item')]
不要用class做精确匹配,每次页面刷新class名都可能变。
七、进阶技能:Python协同与OCR
影刀支持在流程中写Python代码块,能调用影刀所有模块。
from xbot import web, http, excel, print
import json, re, datetime
def main(args):
browser = web.get_active()
# 复杂数据处理用Python
resp = http.get('https://api.example.com/data')
items = json.loads(resp.text)
# Python原生操作:排序、过滤、聚合
sorted_items = sorted(items, key=lambda x: x['price'])
avg_price = sum(item['price'] for item in items) / len(items)
# 正则提取
for item in sorted_items:
if re.search(r'打折|促销|秒杀', item['title']):
print(f'促销商品: {item["title"]}')
OCR在自媒体场景里有用——比如从视频截图里提取字幕、从海报里提取文字。
from xbot import image
text = image.ocr(region=(0, 500, 1080, 200)) # 识别屏幕底部字幕
影刀OCR支持11种识别类型:通用文字4个版本、卡证识别6种(身份证/银行卡/增值税发票/火车票/出租车票/车牌)、表格识别。日常用通用文字识别-标准版就行。
八、系统联动与定时任务
飞书通知
飞书群添加自定义机器人 → 拿Webhook地址 → POST JSON消息。
from xbot import http
http.post('https://open.feishu.cn/open-apis/bot/v2/hook/密钥', json={
"msg_type": "text",
"content": {"text": "竞品监控:商品A降价15%,当前价格85元"}
})
邮件发送
影刀自带"发送邮件"指令。配置SMTP服务器就能发。支持QQ邮箱、163邮箱、企业邮箱。
定时任务
在影刀控制台设置:
- 进入控制台 → 计划管理 → 新建计划
- 选择运行的应用
- 选择执行机器人
- 设置执行时间(每天几点 / 每周几 / Cron表达式)
- 启用计划
这样每天到点自动跑,不需要人盯。
九、工程化与规范
流程复杂了一定要拆子流程。
我之前写了一个200多步的采集流程,调一次要跑20分钟,出bug后找到想哭。
后来拆成:淘宝子流程 + 京东子流程 + 数据汇总子流程 + 通知子流程。单独调试淘宝只要2分钟。
命名不要用"变量1"“变量2”。product_price_list比列表1好一百倍。

版本管理在控制台操作。每次发版前打版本号,出问题直接回退。
十、速查表
指令速查
| 分类 | 常用指令 | 说明 |
|---|---|---|
| 网页 | 获取已打开的网页对象 | 绑定浏览器实例 |
| 网页 | 打开网页 | 打开URL |
| 网页 | 等待网页元素出现 | 比sleep靠谱的等待 |
| 元素 | 获取相似元素列表 | 批量获取同类元素 |
| 元素 | 获取元素文本/属性 | 提取文字或src/href |
| 操作 | 点击网页元素 | 模拟点击 |
| 操作 | 填写输入框 | 模拟输入 |
| 循环 | For Each / For次数循环 | 注意页面刷新场景用次数循环 |
| 判断 | If / Try-Catch | 条件分支和异常处理 |
| 数据 | 读取Excel / 写入Excel | 文件读写 |
| 请求 | HTTP请求 | 发送GET/POST |
| 通知 | 发送飞书消息 | Webhook通知 |
常见错误速查
- “未找到指定ID的元素” → 页面刷新DOM变了 → 改用For次数循环重新获取
- “网页元素等待超时” → 页面加载慢/网络问题 → 加大超时时间
- “OCR额度不足” → 免费额度用完 → 个人中心充值
- “变量未定义” → 拼写错误/作用域问题 → 检查变量名
- “索引超出范围” → 数组为空 → 循环前判断长度
影刀官方文档写得很详细,遇到问题先去官方文档搜,大部分都有解决方案。
更多实战教程可以看影刀RPA学习主页:home.linyan.cloud
#影刀RPA #RPA教程 #场景分类 #自动化方案 #办公自动化
作者:林焱。
更多推荐



所有评论(0)