欢迎光临
我们一直在努力

影刀RPA零基础学习手册:新手从入门到独立开发的完整路径

影刀RPA零基础学习手册:新手从入门到独立开发的完整路径

作者:林焱 | 影刀RPA技术专栏

标签: 影刀RPA / 零基础入门 / RPA学习路线 / 自动化开发 / 新手教程

适合读者: 完全没有编程基础、想通过影刀RPA实现工作自动化的职场人


写在前面:这本手册能帮你做什么?

也许你是一个每天都在重复做同样工作的职场人:

  • 每天从系统里导出数据,粘贴到Excel里做报表
  • 每周批量发几百封邮件或消息
  • 每月花几天时间做对账、核对数据
  • 经常需要从网上采集商品价格、竞品信息

这些重复的、有规律的工作,都可以让影刀RPA替你做。

这本手册不假设你有任何编程基础。我会从"什么是RPA"开始,一步一步带你到"能够独立开发完整自动化项目"的水平。

让我们开始吧。


第一章:RPA是什么?影刀又是谁?

1.1 RPA——让软件机器人替你工作

在这里插入图片描述

RPA(Robotic Process Automation,机器人流程自动化)不是真实的物理机器人,而是在电脑上运行的软件机器人。

这个机器人能做的事和你完全一样:

  • 打开浏览器,访问网页
  • 点击按钮,填写表单
  • 读取Excel数据,写入Excel数据
  • 复制粘贴内容
  • 发送邮件、消息
  • 截图、识别文字

与普通宏/脚本的区别:

维度传统Excel宏Python脚本影刀RPA
学习门槛 中(需懂VBA) 高(需学Python) 低(可视化拖拽)
能操作界面 仅Excel 有限 任何软件
维护难度
适合人群 Office用户 程序员 所有人

1.2 影刀RPA是什么?

影刀RPA是由影刀科技(杭州群核信息技术)开发的国产RPA平台,以下是其核心特点:

平台特点:

  • 🎯 低代码可视化:主要通过拖拽指令完成流程搭建
  • 🔌 内置能力丰富:浏览器、Excel、邮件、文件、API、OCR等开箱即用
  • 🐍 Python扩展:复杂逻辑可用Python代码块实现
  • ☁️ 云端管理:支持云端部署和远程监控
  • 💰 价格亲民:有免费版本,企业版价格合理

适用场景:

  • 数据采集与录入
  • 报表生成与分发
  • 系统对接与同步
  • 批量文件处理
  • 定时自动化任务

1.3 安装与注册

  • 访问官网:https://www.yingdao.com/

  • 点击「免费下载」,选择Windows版本

  • 安装完成后注册账号(手机号注册)

  • 在这里插入图片描述

  • 登录后进入编辑器,即可开始创建流程


  • 第二章:认识影刀编辑器(界面导航)

    打开影刀RPA编辑器,你会看到这样的界面:

    ┌─────────────────────────────────────────────────────┐
    │ 菜单栏(文件/运行/调试/设置) │
    ├──────────┬───────────────────────────┬──────────────┤
    │ │ │ │
    │ 指令面板 │ 画布(流程图区域) │ 属性面板 │
    │(左侧) │ (中间拖拽区) │(右侧参数) │
    │ │ │ │
    ├──────────┴───────────────────────────┴──────────────┤
    │ 底部:输出日志 / 调试信息 │
    └─────────────────────────────────────────────────────┘

    2.1 指令面板——你的工具箱

    左侧指令面板按类别组织了所有可用指令:

    分类包含指令常用程度
    浏览器 打开网页、点击元素、输入文本、获取文本 ⭐⭐⭐⭐⭐
    Excel操作 读取/写入单元格、筛选、排序、图表 ⭐⭐⭐⭐⭐
    流程控制 if/for/while/try-catch ⭐⭐⭐⭐⭐
    变量操作 赋值、字符串处理、列表/字典 ⭐⭐⭐⭐
    文件操作 读写文件、移动复制、重命名 ⭐⭐⭐⭐
    消息通知 发送邮件、企业微信、钉钉 ⭐⭐⭐
    图像识别 OCR识别、截图、找图点击 ⭐⭐⭐
    代码执行 Python代码块 ⭐⭐⭐

    2.2 画布——流程搭建区

    画布是你搭建流程的地方,使用流程图的方式组织指令:

    • 从左侧拖拽指令到画布
    • 指令之间用连线表示执行顺序
    • 可以缩放、移动、对齐

    拼多多店群自动化报活动上架!

    2.3 属性面板——配置指令参数

    点击任意指令,右侧属性面板会显示该指令的所有可配置参数。大多数参数都有中文说明,看名称就能理解。


    第三章:第一个RPA流程——自动搜索关键词

    让我们跟着做一个超简单的流程:打开百度,搜索"影刀RPA",截图保存。

    步骤1:创建新流程

  • 点击左上角「+新建流程」
  • 输入流程名称:第一个RPA流程
  • 点击确认
  • 步骤2:添加"打开浏览器"指令

  • 在左侧指令面板搜索"打开浏览器"
  • 拖拽到画布
  • 右侧属性面板配置:
    • URL:https://www.baidu.com
    • 浏览器类型:Chrome(推荐)
  • 步骤3:添加"输入文本"指令

  • 搜索"输入文本"拖到画布,连接到上一步
  • 点击"选择元素",然后点击浏览器中百度搜索框
  • 影刀会自动捕获元素选择器
  • 在"文本内容"填入:影刀RPA
  • 步骤4:添加"点击元素"指令

  • 拖入"点击元素",连接
  • 选择百度搜索按钮("百度一下"按钮)
  • 步骤5:添加"等待"指令

  • 搜索"等待",拖入
  • 等待时间:2000毫秒(等待搜索结果加载)
  • 步骤6:添加"截图"指令

  • 拖入"截图"指令
  • 保存路径:C:/RPA/screenshots/baidu_result.png
  • 在这里插入图片描述
  • 步骤7:运行测试

    点击顶部工具栏的「运行」按钮,观察流程执行情况。

    如果流程正常运行:

    • 自动打开浏览器
    • 进入百度
    • 输入"影刀RPA"
    • 点击搜索
    • 保存截图

    🎉 恭喜你完成了第一个RPA流程!


    第四章:核心概念详解

    4.1 变量——存储数据的容器

    变量是RPA流程的核心,用来临时存储和传递数据。

    创建变量:

    • 在属性面板点击变量输入框旁的「+」按钮
    • 或在左侧变量面板点击「添加变量」

    变量类型:

    字符串(String): "你好世界"
    整数(Integer): 42
    浮点数(Float): 3.14
    布尔值(Boolean): True / False
    列表(List): ["苹果", "香蕉", "橙子"]
    字典(Dict): {"姓名": "张三", "年龄": 25}

    实际使用示例:

    在这里插入图片描述

    // 1. 先定义变量
    变量名:search_keyword
    初始值:影刀RPA教程

    // 2. 在指令中引用变量(用大括号)
    输入文本 → 文本内容:{{search_keyword}}

    // 3. 修改变量值
    赋值指令 → 变量:search_keyword → 新值:Python入门

    4.2 循环——重复执行的魔法

    循环让你能够处理批量数据,是RPA最强大的能力之一。

    For循环示例:

    场景:处理Excel中100行数据,每行都做相同的操作

    // 读取Excel所有行到变量 all_rows(类型:列表)
    读取Excel → 存入变量:all_rows

    // 遍历每一行
    For 循环 → 遍历变量:all_rows → 当前项变量名:current_row

    ├── 获取姓名:current_row["姓名"]
    ├── 获取邮箱:current_row["邮箱"]
    └── 发送邮件(使用上面的变量)

    While循环示例(翻页采集):

    // 持续翻页,直到没有下一页为止

    变量:has_next_page = True
    变量:page_num = 1

    While循环 → 条件:has_next_page == True

    ├── 采集当前页数据
    ├── 检查"下一页"按钮是否存在
    ├── If 下一页存在:
    │ ├── 点击下一页
    │ └── page_num += 1
    └── Else:
    └── has_next_page = False(结束循环)

    4.3 条件判断——让流程有"智慧"

    // 场景:采集价格,低于100元才收藏

    获取商品价格 → 存入变量:price

    If 条件:price < 100
    ├── True分支:点击收藏按钮
    └── False分支:跳过,继续下一个

    4.4 异常处理——让流程更健壮

    // 场景:采集页面,某些页面可能加载失败

    Try 尝试执行:
    ├── 打开商品页面
    ├── 获取商品信息
    └── 写入Excel

    Catch 出错时:
    ├── 记录错误日志:{error_message}
    ├── 截图保存现场
    └── 继续下一个(不中断整体流程)

    Finally(无论成功失败都执行):
    └── 等待1秒,让网页恢复

    4.5 子流程——代码复用的关键

    // 主流程
    主流程:采集商品数据
    ├── 调用子流程:login_shop(登录商店)
    ├── For循环处理每个商品:
    │ └── 调用子流程:scrape_product(采集单个商品)
    ├── 调用子流程:save_to_excel(保存数据)
    └── 调用子流程:send_report(发送报告)

    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3f36329b525044408c781aec0c3c8f63.png#pic_center)

    // 子流程:login_shop
    1. 打开登录页
    2. 输入账号密码
    3. 点击登录
    4. 等待登录成功
    5. 返回"登录成功"标志


    第五章:元素捕获——让RPA认识界面

    5.1 什么是元素捕获?

    元素捕获是告诉RPA"在哪里点击/输入/读取"的过程。

    每个网页元素(按钮、输入框、文字等)都有自己的"身份证"——选择器,影刀通过这个选择器找到并操作对应元素。

    5.2 捕获方法

    方法一:可视化捕获(推荐新手)

  • 在属性面板点击"选择元素"
  • 影刀高亮显示可选择的元素
  • 鼠标悬停在目标元素上(出现蓝色高亮)
  • 点击确认捕获
  • 方法二:元素侦测器(精确模式)

  • 打开「工具」→「元素侦测器」
  • 点击目标元素
  • 查看自动生成的选择器
  • 可以手动编辑精细调整
  • 5.3 选择器类型对比

    类型示例优点缺点
    CSS选择器 #login-btn 简洁,速度快 动态ID可能变化
    XPath //button[@class='login'] 功能强大 语法复杂
    文本匹配 text:登录 稳定,不依赖样式 有重名文本时不准
    图像识别 截图匹配 无需选择器 速度慢,不稳定

    5.4 应对选择器失效的技巧

    网站更新后选择器可能失效,解决方法:

    在这里插入图片描述

    # 策略1:使用多个备选选择器
    selectors = [
    "#login-btn", # 主选择器
    ".btn-primary[type=submit]", # 备选1
    "button:contains('登录')", # 备选2(文本匹配)
    ]

    for selector in selectors:
    if page.is_element_exist(selector):
    page.click(selector)
    break

    # 策略2:使用包含关系定位(更稳定)
    # 先定位父容器,再在其中找子元素
    parent = page.find_element(".login-form")
    login_btn = parent.find_element("button[type=submit]")

    # 策略3:等待元素出现再操作
    page.wait_for_element("#login-btn", timeout=10)
    page.click("#login-btn")


    第六章:实战项目——电商价格监控系统

    综合运用前面学到的知识,从零搭建一个完整项目。

    6.1 需求分析

    目标: 每天自动采集竞品商品价格,与昨日价格对比,生成价格变动报告发到企业微信。

    流程设计:

    开始

    读取待监控商品列表(Excel)

    For循环处理每个商品

    打开商品页面

    获取当前价格、库存状态

    与历史价格对比

    记录变动情况
    ↓(结束循环)
    生成价格变动报告(Excel)

    发送企业微信通知

    结束

    6.2 准备工作

    创建商品列表Excel(input.xlsx):

    商品名称商品URL昨日价格备注
    商品A https://… 299 竞品一

    TEMU店群矩阵自动化运营核价报活动

    | 商品B | https://… | 199 | 竞品二 |

    在这里插入图片描述

    6.3 核心代码实现

    # 以下代码放入影刀的"代码执行"指令块中

    import datetime
    import time
    import random

    def get_price_from_element(page, price_selector: str) > float:
    """从页面获取并解析价格"""
    try:
    price_text = page.get_text(price_selector)
    # 清理价格文本:去掉¥、,、空格等
    price_clean = price_text.replace("¥", "").replace(",", "").strip()
    # 提取数字部分
    import re
    numbers = re.findall(r'\\d+\\.?\\d*', price_clean)
    if numbers:
    return float(numbers[0])
    except Exception as e:
    print(f"获取价格失败:{e}")
    return 0.0

    def compare_prices(current_price: float, yesterday_price: float) > dict:
    """比较今日与昨日价格"""
    if yesterday_price == 0:
    return {"change": "新增", "diff": 0, "diff_pct": 0, "alert": False}

    diff = current_price yesterday_price
    diff_pct = diff / yesterday_price * 100

    # 价格变动超过5%才告警
    alert = abs(diff_pct) >= 5

    if diff > 0:
    change = f"涨价 +¥{diff:.2f} (+{diff_pct:.1f}%)"
    elif diff < 0:
    change = f"降价 -¥{abs(diff):.2f} ({diff_pct:.1f}%)"
    else:
    change = "价格不变"

    return {
    "change": change,
    "diff": diff,
    "diff_pct": diff_pct,
    "alert": alert
    }

    def monitor_product_price(page, product: dict) > dict:
    """
    监控单个商品价格

    product: {"name": …, "url": …, "yesterday_price": …, "selector": …}
    """
    result = {
    "name": product["name"],
    "url": product["url"],
    "yesterday_price": product["yesterday_price"],
    "today_price": 0,
    "change": "采集失败",
    "status": "error"
    }

    try:
    page.open(product["url"])
    page.wait_for_load(timeout=15)

    # 随机等待(模拟人类行为)
    time.sleep(random.uniform(1.5, 3.5))

    # 获取价格
    price_selector = product.get("selector", ".price")
    today_price = get_price_from_element(page, price_selector)

    if today_price > 0:
    result["today_price"] = today_price
    comparison = compare_prices(today_price, product["yesterday_price"])
    result["change"] = comparison["change"]
    result["diff_pct"] = comparison["diff_pct"]
    result["alert"] = comparison["alert"]
    result["status"] = "success"
    else:
    result["change"] = "价格获取失败"
    result["status"] = "partial_failure"

    except Exception as e:
    result["error"] = str(e)
    result["status"] = "error"
    print(f"采集失败 {product['name']}{e}")

    return result

    # ===== 主逻辑 =====
    # (以下变量由影刀流程传入)
    # products_list: 从Excel读取的商品列表
    # page: 影刀浏览器页面对象

    results = []
    alerts = []

    for product in products_list:
    print(f"正在采集:{product['name']}")

    result = monitor_product_price(page, product)
    results.append(result)

    # 有显著价格变动的加入告警列表
    if result.get("alert"):
    alerts.append(result)

    # 每采集一个商品等待一下
    time.sleep(random.uniform(2, 4))

    # 汇总结果
    summary = {
    "date": datetime.date.today().isoformat(),
    "total": len(results),
    "success": sum(1 for r in results if r["status"] == "success"),
    "alerts": len(alerts),
    "results": results,
    "alert_items": alerts
    }

    # 将summary传给下一步(保存Excel、发消息)
    output_data = summary

    6.4 生成报告并发送通知

    # 生成Markdown格式的价格变动通知

    def build_price_report_markdown(summary: dict) > str:
    date = summary["date"]
    total = summary["total"]
    success = summary["success"]
    alerts = summary["alert_items"]

    # 告警商品列表
    alert_lines = ""
    if alerts:
    for item in alerts[:10]:
    icon = "📈" if item["diff_pct"] > 0 else "📉"
    alert_lines += f"- {icon} **{item['name']}**:¥{item['today_price']} ({item['change']})\\n"
    else:
    alert_lines = "> 今日无显著价格变动\\n"

    return f"""## 📊 价格监控日报 {date}

    **监控总数:** {total} 件 | **成功采集:** {success} 件 | **价格预警:** {len(alerts)}

    ### ⚠️ 价格变动预警

    {alert_lines}

    [📎 查看完整Excel报告](http://intranet/price-reports/{date})

    *自动播报 by 影刀RPA*
    """


    第七章:常见问题与解决方案

    7.1 元素找不到

    症状: 报错"找不到元素"或"元素超时"

    排查步骤:

  • 检查页面是否完全加载(加一个等待指令)
  • 检查选择器是否正确(打开网页用开发者工具验证)
  • 检查是否有弹窗遮挡(先处理弹窗)
  • 检查是否在iframe中(需要切换frame)
  • # 常用解决方案

    # 1. 增加等待时间
    page.wait_for_element("#target", timeout=15) # 等待15秒

    # 2. 等待页面加载完成再操作
    page.wait_for_load()
    time.sleep(1) # 额外等1秒确保JS执行

    # 3. 切换到iframe
    page.switch_to_frame("iframe#content")
    page.click("#target") # 现在在iframe内操作
    page.switch_to_main_frame() # 操作完切回主页面

    7.2 流程突然中断

    症状: 流程运行到一半停止,没有错误信息

    在这里插入图片描述

    排查思路:

    • 查看底部日志面板,找到最后执行的指令
    • 检查是否有未处理的弹窗/对话框
    • 检查内存使用(大量数据处理时内存溢出)
    • 检查网络连接是否正常

    7.3 数据写入Excel乱码

    解决方案:

    # 方法一:指定编码
    excel.write_cell("Sheet1", "A1", text_data.encode("utf-8").decode("gbk"))

    # 方法二:使用openpyxl库
    import openpyxl
    wb = openpyxl.load_workbook("output.xlsx")
    ws = wb.active
    ws["A1"] = text_data # openpyxl自动处理编码
    wb.save("output.xlsx")

    7.4 速度太慢

    优化建议:

    问题解决方案提速效果
    固定等待时间过长 改用智能等待(等待元素出现) 50%+
    Excel逐行读写 改为批量读写 60-80%
    每次操作新开浏览器 复用浏览器实例 40%
    串行处理可并行化 多窗口/多流程并发 3-5倍

    第八章:学习资源与进阶路线

    8.1 官方资源

    • 官方文档:https://www.yingdao.com/docs/
    • 视频教程:影刀官方B站频道
    • 社区论坛:影刀RPA官方社群

    8.2 推荐学习路线

    在这里插入图片描述

    第1周:基础操作
    └── 安装配置、界面熟悉、第一个流程

    第2周:核心指令
    └── 浏览器操作、Excel读写、变量使用

    第3周:流程控制
    └── if/for/while、异常处理、子流程

    第4周:实战项目
    └── 选一个实际工作场景,端到端完成一个流程

    第5-6周:进阶特性
    └── Python代码块、OCR识别、API调用

    第7-8周:工程化
    └── 配置管理、日志系统、定时部署

    8.3 新手最容易踩的坑

    坑描述解决方案
    选择器不稳定 页面更新后失效 用语义化选择器,避免动态ID
    没有异常处理 一个错误导致全流程崩溃 每个关键操作都包Try-Catch
    速度太快被封 高频访问触发反爬 加随机等待
    密码明文 安全隐患 用环境变量存储
    没有日志 出问题不知道在哪里 每一步都记录日志

    总结

    恭喜你读完了这本零基础学习手册!你已经掌握了:

    • ✅ RPA和影刀的基本概念
    • ✅ 编辑器界面导航
    • ✅ 变量、循环、条件、异常处理四大核心概念
    • ✅ 元素捕获方法和失效应对策略
    • ✅ 完整的电商价格监控实战项目
    • ✅ 常见问题排查方法

    下一步行动:

  • 安装影刀RPA,完成第一个搜索截图流程
  • 用Excel读写指令做一个简单的数据整理流程
  • 针对你自己的工作场景,设计并实现一个自动化流程
  • 记住:RPA最好的学习方式是解决真实问题。找到你日常工作中最重复、最无聊的那个任务,用影刀自动化它。


    作者:林焱 | 影刀RPA技术专栏 | 如果对你有帮助,欢迎点赞收藏!

    赞(0)
    未经允许不得转载:171主机测评 » 影刀RPA零基础学习手册:新手从入门到独立开发的完整路径
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址