尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

影刀RPA新手教程:农业电商自动化完全指南——农产品平台上架、订单处理与物流跟踪

影刀RPA新手教程:农业电商自动化完全指南——农产品平台上架、订单处理与物流跟踪
📅 发布时间:2026/6/30 21:30:31

影刀RPA新手教程:农业电商自动化完全指南——农产品平台上架、订单处理与物流跟踪

我老家的亲戚做农产品电商,在拼多多、淘宝、抖音三个平台卖家乡的脐橙和红薯粉。最忙的季节每天接几百单,一家人从早到晚趴在电脑前回复客服、打单发货、更新库存。我过年回去看到这状况,花了两天时间用影刀RPA给他们搭了一套自动化流程,接单、打单、发物流信息、库存同步全都自动化了。第二天他告诉我:“这个软件,比请两个员工还管用。”

这篇文章就以农产品电商的完整运营流程为案例主线,从商品上架到订单处理到物流跟踪,带你系统掌握影刀RPA。

一、认识影刀与安装

上影刀官网下载社区版安装包,双击安装。装完记得装浏览器插件。农产品电商常用的是拼多多商家后台、淘宝千牛、抖音商家后台,都是网页系统,所有操作都依赖浏览器插件。

我第一个坑:千牛后台登录后,影刀浏览器插件自动获取的网页对象找不到千牛的页面。原因是千牛有自己的独立窗口,不是常规浏览器标签页。解决办法是用"获取已打开的网页对象"指令,通过窗口标题匹配来找千牛的窗口。

二、元素定位四合一:XPath + CSS + 正则

电商后台的页面结构:左侧导航菜单 + 中间数据表格 + 右侧操作面板。元素密集,需要精准定位。

// 定位"发布商品"按钮 //button[contains(text(),'发布商品')] // 定位商品标题输入框 //input[@placeholder='请输入商品标题'] // 定位价格输入框 //input[@class='price-input'] // 定位库存输入框(数量) //input[@name='stock'] // 定位订单列表的每一行 //table[@class='order-table']//tr[contains(@class,'order-row')] // 定位"待发货"状态的订单 //td[contains(text(),'待发货')]/parent::tr // 按订单号定位 //td[contains(text(),'240624001')]/parent::tr
/* CSS等价定位 */button:contains("发布商品")input[placeholder*="商品标题"] input.price-input input[name="stock"] tr.order-rowtr:has(td:contains("待发货"))

大部分电商后台用CSS就够了,但要找"包含待发货文本那一行"这种需求,CSS的:has()部分浏览器不支持,还是得用XPath。

正则处理电商数据:

importre# 提取订单金额text="实付金额:¥39.90"amount=re.search(r'¥([\d.]+)',text).group(1)# 39.90# 提取手机号text="收货人:张三 13812345678"phone=re.search(r'1[3-9]\d{9}',text).group()# 从商品标题提取规格title="正宗赣南脐橙 5斤装 中果 新鲜水果包邮"spec=re.search(r'(\d+斤装)',title).group(1)# 5斤装# 提取快递单号text="申通快递:7730123456789"tracking_no=re.search(r'(\d{12,15})',text).group(1)

我当时在提取规格时掉过一个坑:有的商品标题写"5斤装",有的写"5斤/箱",还有的写"净重5斤"。正则如果只匹配"5斤装"就会漏掉后两种。改成r'(\d+)斤'只匹配"数字+斤"部分,三种都能抓到。

三、变量与数据类型

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

# 数字——价格、库存、订单数unit_price=39.90stock=500total_orders=0# 字符串——商品信息product_title="正宗赣南脐橙 5斤装 中果 新鲜水果包邮"tracking_no="7730123456789"# 列表——批量订单orders=[{"订单号":"240624001","商品":"脐橙5斤装","数量":2,"金额":79.80},{"订单号":"240624002","商品":"红薯粉3斤装","数量":1,"金额":29.90}]# 字典——商品完整信息product={"标题":product_title,"类目":"生鲜水果 > 橙类","价格":39.90,"库存":500,"规格":"5斤装","运费模板":"全国包邮","主图路径":"D:\\商品图片\\脐橙主图.jpg","详情图路径":"D:\\商品图片\\脐橙详情.jpg"}# JSON——API对接resp=json.loads(response.text)order_list=resp["data"]["orderList"]

四、流程控制

# For循环——批量上架商品products=load_product_list_from_excel("商品上架清单.xlsx")forproductinproducts:# 打开发布页面web.find("#publishBtn").click()# 填写商品信息fill_product_form(product)# 提交web.find("#submitBtn").click()time.sleep(2)# 相似元素循环——遍历待发货订单order_rows=web.find_all("tr.order-row")forrowinorder_rows:status=row.find("td.order-status").textifstatus=="待发货":order_no=row.find("td.order-no").text buyer_info=row.find("td.buyer-info").text to_ship.append({"订单号":order_no,"买家":buyer_info})# While循环——翻页处理全部订单whileTrue:process_current_page_orders()# 判断是否有下一页try:next_btn=web.find("li.next-page:not(.disabled)")next_btn.click()time.sleep(2)except:break# 没有下一页了# 异常处理——防止个别商品上架失败中断流程try:fill_product_form(product)web.find("#submitBtn").click()exceptExceptionase:print(f"商品{product['标题']}上架失败:{e}")failed_products.append(product)continue

五、网页自动化

等待策略:

电商后台数据加载慢是常态。用"等待元素出现"而不是固定等待,能适应网络波动。我的实践经验:等订单表格出现设置为15秒超时,等详情弹窗出现设置10秒超时。

弹窗处理:

电商后台的弹窗很密集:登录过期弹窗、活动推荐弹窗、系统公告弹窗、确认发货弹窗。建议写一个通用的弹窗关闭函数:

defclose_all_popups():close_selectors=["div.popup-close","button.dialog-close","span.close-icon","div.announcement-modal .close-btn"]forselectorinclose_selectors:try:btn=web.find(selector,timeout=2)ifbtn.exists():btn.click()print(f"关闭弹窗:{selector}")except:continue

翻页处理:

待发货订单可能有很多页,用class判断最后一页:

next_btn=web.find("li.pagination-next")class_attr=next_btn.get_attribute("class")if"disabled"inclass_attr:# 最后一页print("已到最后一页")break

六、数据处理

# Excel——读取商品上架清单importopenpyxl wb=openpyxl.load_workbook("商品上架清单.xlsx")ws=wb.active products=[]forrowinrange(2,ws.max_row+1):products.append({"标题":ws.cell(row,1).value,"类目":ws.cell(row,2).value,"价格":ws.cell(row,3).value,"库存":ws.cell(row,4).value,"规格":ws.cell(row,5).value,"主图路径":ws.cell(row,6).value,"详情图路径":ws.cell(row,7).value})# 写入订单发货汇总wb_out=openpyxl.Workbook()ws_out=wb_out.active ws_out.append(["订单号","商品","买家","快递公司","快递单号","发货时间"])fororderinshipped_orders:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/685ae90f3077429b858af69229616e65.png#pic_center)ws_out.append([order["订单号"],order["商品"],order["买家"],order["快递"],order["单号"],order["发货时间"]])wb_out.save("发货记录_20240624.xlsx")# 数据库——订单历史存储importsqlite3 conn=sqlite3.connect("farm_shop.db")cursor=conn.cursor()cursor.execute("""CREATE TABLE IF NOT EXISTS orders ( id INTEGER PRIMARY KEY AUTOINCREMENT, order_no TEXT UNIQUE, product TEXT, buyer TEXT, amount REAL, status TEXT, shipped_at TEXT, tracking_no TEXT )""")cursor.executemany("INSERT OR IGNORE INTO orders VALUES (NULL, ?, ?, ?, ?, ?, ?, ?)",batch_orders)conn.commit()conn.close()

数据库五个报错:database is locked(SQLite单写锁,加WAL模式或重试)、no such column(字段名打错了)、UNIQUE constraint failed(改用INSERT OR IGNORE)、out of memory(数据太大分批插入)、disk I/O error(磁盘满了)。

七、鼠标键盘图像自动化

商品主图上传在有些平台上不能用元素定位驱动(安全限制),用图像识别+键盘输入代替:

# 点击"上传图片"区域image.click("上传图片区域.png")# 在弹出的文件对话框中输入图片路径keyboard.send_keys("D:\\商品图片\\脐橙主图.jpg")keyboard.send_keys("{ENTER}")# 等待上传完成(图片出现)image.wait_appear("上传成功标识.png",timeout=30)

图像识别的锚点九位置:左上、中上、右上、左中、正中、右中、左下、中下、右下。灵活偏移可以定位到图片区域的任何位置:

# 点击图片中心偏右80像素处image.click("上传区域.png",offset_x=80,offset_y=0)

八、进阶技能

HTTP请求直连电商平台API:

importrequests# 拼多多开放平台API获取订单列表headers={"Content-Type":"application/json","client-id":"your_client_id","access-token":"your_access_token"}params={"order_status":"WAIT_SHIP","page":1,"page_size":50}resp=requests.post("https://open-api.pinduoduo.com/order/list",json=params,headers=headers)orders=resp.json()

OCR——识别快递面单上的单号:

text=ocr.recognize("快递面单照片.png")tracking_no=re.search(r'\d{12,15}',text).group()

Python自定义函数——物流跟踪:

defcheck_logistics_status(tracking_no,express_company):"""查询快递物流状态"""api_mapping={"申通":"https://api.sto.cn/track","圆通":"https://api.yto.net.cn/track","中通":"https://api.zto.com/track"}![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/413baa1f49e747c7943f124314c18ef4.png#pic_center)api_url=api_mapping.get(express_company)ifnotapi_url:return"未支持该快递公司"resp=requests.get(api_url,params={"no":tracking_no})returnresp.json().get("status","未知")

九、平台实战

拼多多批量发货流程:

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

每天自动登录拼多多商家后台 → 进入订单管理 → 筛选"待发货"订单 → 逐条获取收件人信息 → 调用打单软件API自动打印快递面单 → 在后台填入快递单号批量发货。

库存同步:

每个店铺卖出去一件,自动从总库存里减掉一件。每天凌晨同步一次三个平台的实际库存数,防止超卖。农产品不像标品能随时补货,超卖意味着发不出货要赔钱。

这两个流程帮我亲戚家每个月省了200多个小时的人工,最关键的是再也没出现过错发、漏发、超卖的情况。

十、系统联动

# 飞书消息——新订单提醒webhook="https://open.feishu.cn/open-apis/bot/v2/hook/xxx"msg={"msg_type":"text","content":{"text":f"新订单!{order['商品']}×{order['数量']},金额{order['金额']}元"}}requests.post(webhook,json=msg)# 飞书多维表格——库存监控看板lark_base.update_record("tblStock",record_id,{"当前库存":new_stock,"更新时间":datetime.now().strftime("%Y-%m-%d %H:%M")})# 短信通知买家已发货# 调用云片网等短信APIsend_sms(phone=order["手机号"],content=f"您的订单{order_no}已发货,{express_company}{tracking_no}")

十一、工程化规范

主流程_每日电商运营 ├── 子流程_登录各平台(参数:平台名称、账号密码) ├── 子流程_订单处理(参数:日期范围) ├── 子流程_批量发货(参数:订单列表) ├── 子流程_库存同步(参数:平台) └── 子流程_物流跟踪(参数:快递单号列表)

调试经验:电商流程最怕"发货发重了"。我的做法是在流程里加一个"已发货检查"——插入快递单号前先检查该订单是否已有单号,有就跳过。

命名规范:order_no_list(列表)、ORDER_STATUS_SHIPPED(状态常量)、productPrice(金额)。

版本选择:农产品个体户用社区版免费足够;小型电商团队用创业版定时运行;电商公司用企业版对接开放平台API。

十二、速查表与常见报错

报错原因方案
商品发布失败必填字段没填逐一检查所有必填项
图片上传超时图片太大或网络慢压缩图片到1M以下
发货重复没有检查是否已发货发货前加状态检查
库存不一致多平台不同步设置统一库存缓存
登录过期Cookie失效定时重新登录
反爬限制操作太频繁加延时+模拟人工节奏

农业电商不比城市电商,很多时候是一个人管三四个平台,手工根本管不过来。把重复性的事情交给RPA,人去做选品、定价、营销这些真正需要动脑子的事。

RPA在农产品电商里的应用价值被严重低估了,实际用起来比招两个客服还靠谱——毕竟程序不会请假、不会算错账、不会漏发。home.linyan.cloud 上有更多行业落地方案可以参考。

#影刀RPA #RPA教程 #农业电商 #农产品上架 #订单自动化
作者:林焱

相关新闻

  • 可微分无权重控制器(DWCs)技术解析与硬件优化实践
  • 影刀RPA新手教程:子流程参数传递完全指南——怎么把数据传进去,把结果传出来
  • 量子粒计算:从经典到量子的信息处理范式迁移

最新新闻

  • JVM 运行时数据区 —— 5 大块内存
  • C++ Primer Plus 重读精讲 _ 指针进阶全集:三类const指针辨析、指针数组数组指针硬核区分、指针地址传参、工控函数双向改参实战
  • Focus架构:视觉语言模型的高效加速方案
  • 如何快速查找 *Bash* 命令的*类型*?
  • 5分钟快速上手:RedisDesktopManager-Windows终极可视化数据库管理工具完整指南
  • 如何生成字母或数字的*序列*?

日新闻

  • 【计算机毕业设计案例】基于 Spring Boot+Vue 的电影售票系统设计与实现 前后端分离架构下影院在线购票管理平台(程序+文档+讲解+定制)
  • 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦
  • Google限制Meta使用Gemini模型 凸显AI授权竞争白热化

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号