RPA自动化脚本实战:我用这5类脚本接单月入过万,附源码+避坑实录
先说结论:RPA接单能赚钱,但2026年已经过了"会拖拽就能接单"的红利期。这篇文章不吹收入、不卖焦虑,只分享我踩了两年坑验证出来的真实路径。文末整理了工具安装包+脚本模板+Prompt模板,需要的自取。
一、这行到底赚不赚钱?先看真实数据
直接上干货,不绕弯子。
| 阶段 | 能力要求 | 月收入区间 | 核心差异点 |
|---|---|---|---|
| 入门(0-6月) | Excel/浏览器自动化,能跑通流程 | 2K-5K | 接小单练手,时薪约50-80元 |
| 进阶(6-12月) | 跨系统对接、异常处理、OCR | 5K-10K | 企业客户复购,客单价提升 |
| 成熟(1年+) | AI+RPA融合、方案设计 | 10K-20K | 卖标准化方案,脱离按小时计费 |
数据来源:我自己两年的接单账本 + 程序员客栈/电鸭社区同行交流。
关键认知:收入差距不在工具熟练度,在能不能搞定异常流程。同样是抓网页数据,新手脚本跑3次崩1次,成熟工程师的脚本能跑一个月不报错——这就是客单价差3倍的原因。
二、5类高频脚本,新手从哪切入?
2.1 数据采集与清洗(入门首选,客单价500-1500)
最经典的场景,也是我最开始接的单。
真实需求举例:
-
某电商运营每天手动复制200个SKU的价格到Excel,耗时2小时
-
某HR每周从3个招聘网站下载简历,手动去重整理
可直接运行的精简代码:
# 用 requests + BeautifulSoup 抓取静态表格
# 安装依赖:pip install requests beautifulsoup4 openpyxl
import requests
from bs4 import BeautifulSoup
import openpyxl
from datetime import datetime
def scrape_to_excel(url, output_file):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}
try:
resp = requests.get(url, headers=headers, timeout=10)
resp.encoding = 'utf-8'
soup = BeautifulSoup(resp.text, 'html.parser')
# 定位表格(根据实际网页修改选择器)
table = soup.find('table', {'class': 'data-table'})
rows = table.find_all('tr')[1:] # 跳过表头
# 写入Excel
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['名称', '价格', '库存', '抓取时间'])
for row in rows:
cols = row.find_all('td')
if len(cols) >= 3:
ws.append([
cols[0].get_text(strip=True),
cols[1].get_text(strip=True),
cols[2].get_text(strip=True),
datetime.now().strftime('%Y-%m-%d %H:%M')
])
wb.save(output_file)
print(f"✅ 成功抓取 {len(rows)} 条数据,保存至 {output_file}")
except Exception as e:
print(f"❌ 抓取失败: {e}")
# 实际项目中这里要写入日志文件
raise
# 使用示例
if __name__ == "__main__":
scrape_to_excel(
url="https://example.com/products",
output_file=f"data/价格监控_{datetime.now().strftime('%Y%m%d')}.xlsx"
)
避坑点:
-
别用固定XPath,网站改版就崩。用相对定位 + 多重备选方案
-
一定要加异常重试。网络波动导致页面没加载完,直接抛异常等于白跑
-
requests抓不了的动态页面,换Selenium或Playwright
2.2 办公流程自动化(复购率最高,客单价800-3000)
企业客户的刚需,最容易产生长期合作。
真实需求举例:
-
财务每月从ERP导出数据,按固定模板生成报表,邮件发给5个领导
-
行政每月核对几百张发票,手动录入系统
核心代码思路:
# 伪代码:ERP数据→Excel报表→自动邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def monthly_report():
# Step 1: 从数据库取数(实际项目中替换为真实连接)
raw_data = query_erp_data(start_date, end_date)
# Step 2: 按模板生成报表
wb = load_template("report_template.xlsx")
fill_data(wb["Sheet1"], raw_data)
add_pivot_table(wb)
save_path = f"月度报表_{datetime.now().strftime('%Y%m')}.xlsx"
wb.save(save_path)
# Step 3: 自动发送邮件(SMTP配置抽离到配置文件)
send_email_with_attachment(
to_list=["boss@company.com", "cfo@company.com"],
subject=f"【自动发送】{datetime.now().month}月财务报表",
body="报表已生成,请查收附件。",
attachment_path=save_path
)
避坑点:
-
邮件附件超过10MB,先压缩或拆分。领导邮箱容量有限
-
收件人列表抽离到外部配置文件,别写死在代码里
-
发送失败要有重试机制和告警
发票识别的小技巧:
做发票识别需要OCR能力。我踩过几个坑:
-
接百度/腾讯OCR API:按月付费,内网环境根本用不了
-
自己训练PaddleOCR模型:太重了,部署麻烦
-
最后找到一个支持离线OCR的国产方案,零配置开箱即用,内网财务环境也能跑
这里不点名了,避免广告嫌疑。有需要的评论区自取,我私发链接。
2.3 电商运营自动化(需求爆发,客单价1000-5000)
电商行业是RPA接单的重灾区——需求太密集了。
真实需求举例:
-
同一款商品,信息同步到淘宝/京东/拼多多三个后台
-
竞品降价了,自动跟着调价(防止流量被抢)
-
多店铺订单统一汇总到ERP
核心难点:反风控。
电商平台的风控越来越严,纯自动化容易被识别。我的解法:
# 伪代码:模拟人工操作,降低风控概率
import random
import time
def human_like_delay(min_sec=1.5, max_sec=4.0):
"""模拟真人思考时间的随机延时"""
delay = random.uniform(min_sec, max_sec)
time.sleep(delay)
return delay
def simulate_typing(element, text):
"""模拟真实打字节奏,每个字符间隔随机"""
for char in text:
element.send_keys(char)
time.sleep(random.uniform(0.08, 0.25))
def safe_login(browser, platform, account_id):
# 随机延时,模拟真人操作间隔
human_like_delay(2, 5)
# 输入账号密码时模拟人工节奏
username_field = browser.find_element_by_id("username")
simulate_typing(username_field, get_account(platform, account_id)["user"])
human_like_delay(0.5, 1.2)
pwd_field = browser.find_element_by_id("password")
simulate_typing(pwd_field, get_account(platform, account_id)["pwd"])
# Cookie隔离,多账号不串号
browser.use_profile(f"profile_{platform}_{account_id}")
return browser
避坑点:
-
别用固定时间间隔。
time.sleep(3)太规律了,用random.uniform(2.5, 4.8) -
多账号一定要隔离Cookie和指纹。曾经有个客户因为账号串了,A店的订单跑到B店后台,损失了几千块
交付时,建议把脚本打包成独立程序。客户不懂技术,你给源码他跑不起来。我通常用工具自带的打包功能,生成一个双击运行的EXE,带简单的操作界面。
2.4 跨系统数据同步(进阶,客单价3000-8000)
从中级向高级进阶的必经之路,利润最厚。
真实需求举例:
-
销售在CRM录入了订单,需要自动推送到ERP生成生产单
-
企业换系统,旧数据库几百万条记录要迁移到新系统
核心代码思路:
# 伪代码:CRM→ERP订单同步,带异常回滚和幂等性
import hashlib
def sync_order(order_id):
# 幂等性校验:同一个订单不重复同步
order_hash = hashlib.md5(str(order_id).encode()).hexdigest()
if db.exists(f"synced:{order_hash}"):
logging.info(f"订单 {order_id} 已同步,跳过")
return {"status": "SKIPPED", "reason": "already_synced"}
try:
# Step 1: 从CRM读取订单
order = crm_api.get(f"/orders/{order_id}")
logging.info(f"从CRM读取订单 {order_id},包含 {len(order['items'])} 个商品")
# Step 2: 数据格式转换(字段映射)
erp_payload = {
"customer_code": map_customer_id(order["customer_id"]),
"product_list": [map_sku(item) for item in order["items"]],
"delivery_date": format_date(order["expected_date"]),
"source_order_id": order_id # 用于溯源
}
# Step 3: 写入ERP
erp_response = erp_api.post("/production_orders", json=erp_payload)
# Step 4: 记录同步状态 + 标记已同步
db.execute("""
INSERT INTO sync_log (order_id, status, erp_id, sync_time, payload_hash)
VALUES (?, 'SUCCESS', ?, NOW(), ?)
""", (order_id, erp_response["id"], order_hash))
db.set(f"synced:{order_hash}", "1", ex=86400*30) # 30天过期
logging.info(f"订单 {order_id} 同步成功,ERP单号: {erp_response['id']}")
return {"status": "SUCCESS", "erp_id": erp_response["id"]}
except Exception as e:
# 关键:异常时记录详细日志,方便溯源
db.execute("""
INSERT INTO sync_log (order_id, status, error_msg, sync_time)
VALUES (?, 'FAILED', ?, NOW())
""", (order_id, str(e)))
send_alert(f"🚨 订单 {order_id} 同步失败: {str(e)}")
raise
避坑点:
-
幂等性设计是底线。同一个订单因为网络超时被同步两次,ERP里出现重复生产单,客户会疯
-
日志要足够详细。企业客户最怕"不知道哪一步出错了",日志是救命稻草
这里有个实用技巧:遇到RPA原生组件搞不定的复杂逻辑(比如上面的数据格式转换),可以直接插Python代码。我用过的一款国产免费RPA工具支持这种扩展,RPA负责流程调度,Python负责脏活累活,配合起来很灵活。内网环境也能跑,不用联网。
2.5 AI+RPA融合(2026年新赛道,客单价5000+)
今年的趋势,也是高级工程师的溢价点。
真实需求举例:
-
客服机器人:抓取客户问题→调用大模型生成回复→自动发送
-
合同审核:下载PDF→提取文字→AI分析风险点→生成报告
核心代码思路:
# 伪代码:简历智能筛选(RPA + 大模型)
import json
def screen_resume(resume_url):
# Step 1: RPA下载PDF
pdf_path = download_file(resume_url)
# Step 2: 提取文字(可以用PyPDF2或pdfplumber)
text = extract_text_from_pdf(pdf_path)
# Step 3: Prompt Engineering(关键!)
prompt = f"""你是一位资深技术HR,请严格按以下要求分析简历:
【评估维度】
1. 技术匹配度(要求:Python + RPA/自动化经验,1-10分)
2. 项目经验质量(是否有完整项目闭环,1-10分)
3. 稳定性(近3年跳槽次数,每次扣2分)
【输出格式】
必须返回纯JSON,不要任何解释文字:
{{
"overall_score": 8.5,
"tech_score": 9,
"project_score": 8,
"stability_score": 8,
"summary": "技术扎实,有3个完整RPA项目经验,稳定性良好",
"risk_flags": ["最近一份工作不满1年"],
"recommend": "建议面试"
}}
【简历内容】(已截断至3000字):
{text[:3000]}
"""
# Step 4: 调用大模型
raw_result = call_llm_api(prompt, model="deepseek-chat", temperature=0.1)
# Step 5: 解析并校验(大模型有幻觉,必须做规则校验)
try:
parsed = json.loads(raw_result)
# 校验分数范围
assert 0 <= parsed["overall_score"] <= 10
assert isinstance(parsed["recommend"], str)
except (json.JSONDecodeError, AssertionError, KeyError) as e:
logging.error(f"大模型返回格式异常: {raw_result[:200]}")
parsed = {
"overall_score": 0,
"summary": "解析失败,需人工复核",
"recommend": "待定"
}
# Step 6: 写入数据库,按分数排序
save_screening_result(parsed)
return parsed
避坑点:
-
Prompt一定要要求结构化输出(JSON/XML),否则大模型返回一段散文,RPA解析不了
-
大模型有幻觉,关键字段(如薪资、日期)一定要做规则校验,不能全信AI
-
temperature设低一点(0.1-0.3),让输出更稳定
三、接单渠道:从哪找客户?
| 平台 | 适合阶段 | 特点 | 我的收入占比 |
|---|---|---|---|
| 闲鱼 | 0-3月练手 | 门槛低,客单价300-800 | 5% |
| 程序员客栈 | 3-12月进阶 | 技术客户多,沟通成本低 | 35% |
| 电鸭社区 | 全阶段 | 远程友好,长期合作多 | 25% |
| 老客户复购 | 6月+ | 最稳定的收入来源 | 30% |
| Boss兼职频道 | 有经验者 | 企业直单,客单价高 | 5% |
核心建议:前6个月别挑单,什么脏活累活都接,目的是积累案例和口碑。有个客户因为我帮他做了一个500块的Excel自动化,半年后介绍了一个3万的ERP对接项目。
四、3个血泪避坑经验
坑1:需求边界不清,返工三次白干
客户口头说"批量处理数据",你以为只是Excel合并。交付后他要加数据可视化、加图表、加邮件推送、加权限控制...
解法:接单前写一份《需求确认单》,哪怕就一页纸:
【输入】:从哪个系统/文件取数据?格式是什么?
【处理】:具体做什么操作?(合并/计算/筛选/转换)
【输出】:生成什么文件?发给谁?什么格式?
【异常】:数据缺失/格式错误时怎么处理?
【验收】:什么算"完成"?测试数据是什么?
坑2:交付物无法运行,客户不会用
你给源码,客户是业务人员,Python环境都没有。
解法:打包成独立程序 + 写一份《傻瓜操作手册》:
1. 双击打开"启动.bat"
2. 在弹出的窗口里输入日期范围(格式:2026-01-01 至 2026-01-31)
3. 点击"开始运行"按钮
4. 等进度条跑完(大约5分钟)
5. 去 D:\输出结果\ 文件夹查看Excel文件
花20分钟写这个,客户满意度提升80%,复购率显著提升。
坑3:脚本跑通就不管,异常处理为零
你的脚本在自己电脑跑得好好的,到客户内网环境就崩。没有日志,不知道哪一步出错,远程调试3小时。
解法:强制自己写异常处理 + 日志记录。每个关键步骤都要记录:
import logging
from datetime import datetime
# 日志配置(按天分文件,防止单文件过大)
log_file = f"logs/run_{datetime.now().strftime('%Y%m%d')}.log"
logging.basicConfig(
filename=log_file,
level=logging.INFO,
format='%(asctime)s [%(levelname)s] %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
def critical_step(step_name, func, *args, **kwargs):
"""包装器:自动记录步骤开始/结束/异常"""
try:
logging.info(f"[START] {step_name}")
result = func(*args, **kwargs)
logging.info(f"[SUCCESS] {step_name} - 结果: {str(result)[:100]}")
return result
except Exception as e:
logging.error(f"[FAILED] {step_name} - 错误: {str(e)}", exc_info=True)
raise
五、工具选择:我的真实使用体验
不吹不黑,说说我用过的几款工具:
| 工具 | 收费 | 我的使用场景 | 缺点 |
|---|---|---|---|
| UiPath | 企业版贵 | 大型企业项目,需要官方认证时 | 社区版功能受限,个人接单够用但不够爽 |
| 影刀RPA | 免费+付费 | 零基础新手入门,电商模板多 | 部分高级功能要付费,离线能力一般 |
| 某国产免费工具 | 完全免费 | 内网环境、给客户交付EXE | 社区生态不如大厂,高级功能文档少 |
我的选择逻辑:
-
给客户演示/学习阶段:用生态好的工具,教程多
-
正式交付/内网部署:用能离线运行、能打包EXE的工具,避免后续麻烦
-
复杂逻辑:RPA搞不定的,直接上Python插进去
别陷入"选工具三个月,接单零单"的陷阱。先用任何免费工具跑通一个完整的"接单→开发→交付→收款"闭环,比纠结哪个工具好重要一百倍。
六、我的成长时间线(真实记录)
| 时间 | 状态 | 收入 | 关键动作 |
|---|---|---|---|
| 2024.03 | 开始学习 | 0 | 跟着官方教程做Demo,自己给自己找需求练手 |
| 2024.06 | 接第一单 | 500 | 闲鱼接的Excel批量处理,做了3天 |
| 2024.09 | 稳定接单 | 3K/月 | 转程序员客栈,开始接数据采集类 |
| 2024.12 | 第一个复购客户 | 5K/月 | 财务自动化脚本,客户介绍同行 |
| 2025.06 | 脱离按小时计费 | 8K/月 | 开始卖标准化模板(改配置就能复用) |
| 2025.12 | AI+RPA融合 | 12K/月 | 接了一个智能客服项目,客单价1.5万 |
| 2026.04 | 现在 | 15K/月 | 30%定制 + 50%模板复购 + 20%老客户介绍 |
关键转折点:从"卖时间"变成"卖解决方案"。
前期按小时收费,做一个脚本赚一个脚本的钱。后期把通用需求做成标准化产品(比如"电商多平台库存同步方案"),卖一次赚多次的钱。
写在最后
RPA不是银弹,不能让你一夜暴富。但它确实是一条低门槛、高确定性的技术变现路径。
2026年的市场环境:企业降本增效的压力越来越大,个人开发者用自动化接单的机会只会变多。但纯规则化的RPA已经卷不动了,AI+RPA融合才是溢价方向。
与其观望,不如今天就下载一个免费工具,跟着教程做一个"自动打开网页→输入关键词→抓取结果"的Demo。跑通第一个脚本的那一刻,你会明白:技术变现,其实没那么难。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)