电商自动化Skills

First Post:

Last Update:

电商平台后台自动化方案 - 使用 OpenClaw Skills

🎯 实现目标

通过 OpenClaw Skills 实现电商平台后台的自动化操作,包括:

  • ✅ 自动登录电商平台后台
  • ✅ 自动处理订单、发货
  • ✅ 批量上传商品
  • ✅ 自动回复客服消息
  • ✅ 数据报表导出
  • ✅ 库存预警和自动补货

🏗️ 技术架构

方案对比

方案 优点 缺点 适用场景
Playwright/Selenium (RPA) 稳定可靠、可模拟真实操作 速度较慢、需要维护选择器 复杂交互、无 API 接口
官方 API 调用 高效、稳定、官方支持 需要申请权限、可能有限制 有完善 API 的平台
混合方案 兼顾效率和灵活性 实现复杂 推荐:核心用 API + 复杂操作用 RPA

推荐架构

1
2
3
4
5
6
OpenClaw Agent (调度层)

├─ → 电商API接口 (核心操作:订单管理、商品管理)
├─ → Playwright (UI自动化:无API功能的操作)
├─ → 数据处理层 (Excel/CSV批量操作)
└─ → 通知系统 (Telegram/邮件/钉钉通知)

📦 方案一:使用 Playwright Skill(UI 自动化)

1. 加载 Browser Automation Skill

1
2
# 在 OpenClaw 中加载技能
use_skill("playwright-cli")

2. 实现自动登录和订单处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
from playwright.sync_api import sync_playwright
from typing import List, Dict
import time
import json

class EcommerceRPA:
"""电商平台后台自动化操作"""

def __init__(self, headless: bool = False):
self.headless = headless
self.playwright = None
self.browser = None
self.page = None
self.logged_in = False

def start(self):
"""启动浏览器"""
self.playwright = sync_playwright().start()
self.browser = self.playwright.chromium.launch(
headless=self.headless,
args=['--start-maximized']
)
context = self.browser.new_context(
viewport={'width': 1920, 'height': 1080},
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
)
self.page = context.new_page()

def login(self, platform: str, credentials: Dict[str, str]):
"""
登录电商平台

Args:
platform: 平台名称 (taobao, jd, amazon, shopify 等)
credentials: 登录凭证
"""
platform_urls = {
'taobao': 'https://sell.taobao.com/',
'jd': 'https://merchant.jd.com/',
'amazon': 'https://sellercentral.amazon.com/',
'shopify': 'https://admin.shopify.com/'
}

login_config = {
'taobao': {
'url': platform_urls['taobao'],
'username_selector': 'input[name="username"]',
'password_selector': 'input[name="password"]',
'login_button_selector': 'button[type="submit"]'
},
'jd': {
'url': platform_urls['jd'],
'username_selector': '#username',
'password_selector': '#password',
'login_button_selector': '.login-btn'
},
# ... 更多平台配置
}

config = login_config.get(platform)
if not config:
raise ValueError(f"不支持的平台: {platform}")

# 访问登录页面
self.page.goto(config['url'], wait_until='networkidle')

# 填写登录信息
self.page.fill(config['username_selector'], credentials['username'])
self.page.fill(config['password_selector'], credentials['password'])

# 点击登录按钮
self.page.click(config['login_button_selector'])

# 等待登录成功
self.page.wait_for_load_state('networkidle')
self.page.wait_for_timeout(2000)

# 验证登录
if self.page.url != config['url']:
self.logged_in = True
print(f"✅ 成功登录 {platform} 后台")
return True
else:
print(f"❌ 登录 {platform} 失败")
return False

def get_orders(self, status: str = 'pending') -> List[Dict]:
"""
获取订单列表

Args:
status: 订单状态 (pending, paid, shipped, completed)

Returns:
订单列表
"""
# 导航到订单页面
self.page.goto('https://sell.taobao.com/orders', wait_until='networkidle')

# 筛选订单状态
self.page.click(f'text={status}')

# 等待列表加载
self.page.wait_for_selector('.order-item')

# 提取订单信息
orders = []
order_elements = self.page.query_selector_all('.order-item')

for element in order_elements:
order = {
'order_id': element.query_selector('.order-id').text_content(),
'customer_name': element.query_selector('.customer-name').text_content(),
'products': self._extract_products(element),
'total_amount': float(element.query_selector('.total-amount').text_content().replace('¥', '')),
'address': element.query_selector('.address').text_content(),
'status': status,
'create_time': element.query_selector('.create-time').text_content()
}
orders.append(order)

return orders

def _extract_products(self, order_element):
"""提取订单商品信息"""
products = []
product_elements = order_element.query_selector_all('.product-item')

for prod in product_elements:
products.append({
'name': prod.query_selector('.product-name').text_content(),
'sku': prod.query_selector('.sku').text_content(),
'quantity': int(prod.query_selector('.quantity').text_content())
})

return products

def ship_order(self, order_id: str, tracking_number: str, carrier: str = 'SF'):
"""
发货

Args:
order_id: 订单号
tracking_number: 快递单号
carrier: 快递公司
"""
# 导航到订单详情页
self.page.goto(f'https://sell.taobao.com/order/{order_id}', wait_until='networkidle')

# 点击发货按钮
self.page.click('button:has-text("发货")')

# 等待发货弹窗
self.page.wait_for_selector('.ship-modal')

# 选择快递公司
self.page.select_option('.carrier-select', carrier)

# 填写快递单号
self.page.fill('.tracking-number-input', tracking_number)

# 确认发货
self.page.click('button:has-text("确认发货")')

# 等待发货成功
self.page.wait_for_selector('.success-message', timeout=10000)

print(f"✅ 订单 {order_id} 发货成功,快递单号: {tracking_number}")
return True

def batch_ship(self, orders_tracking: List[Dict[str, str]]):
"""
批量发货

Args:
orders_tracking: 订单和快递单号列表
[{'order_id': 'xxx', 'tracking_number': 'xxx', 'carrier': 'SF'}, ...]
"""
success_count = 0
failed_orders = []

for item in orders_tracking:
try:
self.ship_order(
order_id=item['order_id'],
tracking_number=item['tracking_number'],
carrier=item.get('carrier', 'SF')
)
success_count += 1
time.sleep(1) # 避免操作过快
except Exception as e:
print(f"❌ 订单 {item['order_id']} 发货失败: {e}")
failed_orders.append({
'order_id': item['order_id'],
'error': str(e)
})

print(f"\n批量发货完成: 成功 {success_count} 单,失败 {len(failed_orders)} 单")

return {
'success': success_count,
'failed': failed_orders
}

def upload_products(self, products: List[Dict[str, any]]):
"""
批量上传商品

Args:
products: 商品列表
[{
'title': '商品标题',
'price': 99.00,
'stock': 100,
'category': '电子产品',
'description': '商品描述',
'images': ['path/to/image1.jpg', 'path/to/image2.jpg']
}, ...]
"""
# 导航到商品发布页面
self.page.goto('https://sell.taobao.com/product/new', wait_until='networkidle')

for product in products:
try:
# 填写商品信息
self.page.fill('#product-title', product['title'])
self.page.fill('#product-price', str(product['price']))
self.page.fill('#product-stock', str(product['stock']))

# 选择分类
self.page.click('#category-selector')
self.page.fill('.category-search', product['category'])
self.page.click(f'text={product["category"]}')

# 上传图片
for image_path in product['images']:
self.page.set_input_files('#product-images', image_path)
self.page.wait_for_timeout(500) # 等待上传

# 填写描述
self.page.fill('#product-description', product['description'])

# 提交
self.page.click('button:has-text("发布")')
self.page.wait_for_selector('.success-message', timeout=15000)

print(f"✅ 商品 {product['title']} 发布成功")

# 重新进入发布页面
self.page.goto('https://sell.taobao.com/product/new', wait_until='networkidle')

except Exception as e:
print(f"❌ 商品 {product['title']} 发布失败: {e}")

def download_report(self, report_type: str, date_range: Dict[str, str]) -> str:
"""
下载报表

Args:
report_type: 报表类型 (sales, inventory, orders)
date_range: 日期范围 {'start': '2024-01-01', 'end': '2024-01-31'}

Returns:
下载的文件路径
"""
# 导航到报表页面
self.page.goto('https://sell.taobao.com/reports', wait_until='networkidle')

# 选择报表类型
self.page.click(f'text={report_type}')

# 设置日期范围
self.page.fill('#start-date', date_range['start'])
self.page.fill('#end-date', date_range['end'])

# 下载报表
with self.page.expect_download() as download_info:
self.page.click('button:has-text("导出")')

download = download_info.value
file_path = f"./reports/{download.suggested_filename}"
download.save_as(file_path)

print(f"✅ 报表已下载: {file_path}")
return file_path

def close(self):
"""关闭浏览器"""
if self.browser:
self.browser.close()
if self.playwright:
self.playwright.stop()

3. OpenClaw Agent 集成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
from openclaw import Agent
import json

# 创建电商自动化 Agent
ecommerce_rpa_agent = Agent(
name="电商后台自动化助手",
instructions="""
你是一个专业的电商后台自动化助手,负责:
1. 自动登录电商平台后台
2. 查询和处理订单
3. 批量发货操作
4. 上传和管理商品
5. 下载和生成报表

重要规则:
- 操作前要确认用户身份和权限
- 记录所有操作的日志
- 遇到错误要详细报告
- 批量操作要有进度提示
""",
tools=[
login_ecommerce,
get_pending_orders,
process_shipment,
batch_upload_products,
generate_daily_report
]
)

@ecommerce_rpa_agent.tool
def login_ecommerce(platform: str, username: str, password: str) -> bool:
"""
登录电商平台

Args:
platform: 平台名称 (taobao, jd, amazon)
username: 用户名
password: 密码

Returns:
是否登录成功
"""
rpa = EcommerceRPA(headless=True)
rpa.start()

success = rpa.login(
platform=platform,
credentials={'username': username, 'password': password}
)

if success:
# 保存到全局状态
global rpa_instance
rpa_instance = rpa

rpa.close()
return success

@ecommerce_rpa_agent.tool
def get_pending_orders(platform: str) -> str:
"""
获取待处理订单

Args:
platform: 平台名称

Returns:
订单信息 JSON 字符串
"""
if not rpa_instance or not rpa_instance.logged_in:
return {"error": "请先登录"}

orders = rpa_instance.get_orders(status='pending')

return {
"count": len(orders),
"orders": orders,
"summary": {
"total_amount": sum(o['total_amount'] for o in orders),
"total_items": sum(len(o['products']) for o in orders)
}
}

@ecommerce_rpa_agent.tool
def process_shipment(
order_id: str,
tracking_number: str,
carrier: str = "SF"
) -> bool:
"""
处理单个订单发货

Args:
order_id: 订单号
tracking_number: 快递单号
carrier: 快递公司

Returns:
是否成功
"""
if not rpa_instance or not rpa_instance.logged_in:
return False

return rpa_instance.ship_order(
order_id=order_id,
tracking_number=tracking_number,
carrier=carrier
)

@ecommerce_rpa_agent.tool
def batch_ship_from_excel(
excel_file_path: str,
carrier: str = "SF"
) -> Dict:
"""
从 Excel 文件批量发货

Args:
excel_file_path: Excel 文件路径
carrier: 快递公司

Returns:
处理结果
"""
import pandas as pd

# 读取 Excel
df = pd.read_excel(excel_file_path)

# 准备发货数据
orders_tracking = df.to_dict('records')

# 批量发货
result = rpa_instance.batch_ship(orders_tracking)

# 生成报告
report_file = generate_shipment_report(result)

return {
"processed": len(orders_tracking),
"success": result['success'],
"failed": len(result['failed']),
"report_file": report_file
}

@ecommerce_rpa_agent.tool
def batch_upload_products_from_csv(csv_file_path: str) -> Dict:
"""
从 CSV 文件批量上传商品

Args:
csv_file_path: CSV 文件路径

Returns:
上传结果
"""
import pandas as pd

# 读取 CSV
df = pd.read_csv(csv_file_path)

# 转换为商品格式
products = []
for _, row in df.iterrows():
products.append({
'title': row['商品标题'],
'price': row['价格'],
'stock': row['库存'],
'category': row['分类'],
'description': row['描述'],
'images': row['图片路径'].split(',')
})

# 批量上传
rpa_instance.upload_products(products)

return {
"total": len(products),
"uploaded": len(products)
}

@ecommerce_rpa_agent.tool
def generate_daily_report(platform: str, date: str) -> str:
"""
生成日报

Args:
platform: 平台名称
date: 日期 (YYYY-MM-DD)

Returns:
报告文件路径
"""
rpa_instance.download_report(
report_type='sales',
date_range={
'start': date,
'end': date
}
)

return f"./reports/{platform}_daily_{date}.xlsx"

📦 方案二:使用官方 API(推荐)

1. 电商 API 封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import requests
import json
from typing import Dict, List

class EcommerceAPI:
"""电商平台 API 封装"""

def __init__(self, platform: str, app_key: str, app_secret: str):
self.platform = platform
self.app_key = app_key
self.app_secret = app_secret
self.session = requests.Session()

def _get_access_token(self) -> str:
"""获取访问令牌"""
# 实现具体的认证逻辑
pass

def get_orders(
self,
status: str = 'WAIT_SELLER_SEND_GOODS',
page: int = 1,
page_size: int = 100
) -> List[Dict]:
"""
获取订单列表

Args:
status: 订单状态
page: 页码
page_size: 每页数量

Returns:
订单列表
"""
url = f"https://gw.api.{self.platform}.com/router/rest"

params = {
'method': 'taobao.trades.sold.get',
'app_key': self.app_key,
'timestamp': int(time.time()),
'format': 'json',
'v': '2.0',
'fields': 'tid,status,created,pay_time,total_fee,receiver_name,receiver_address',
'status': status,
'page_no': page,
'page_size': page_size
}

response = self.session.get(url, params=params)
data = response.json()

return data.get('trades_sold_get_response', {}).get('trades', [])

def ship_order(
self,
order_id: str,
company_code: str,
out_sid: str
) -> bool:
"""
发货

Args:
order_id: 订单号
company_code: 快递公司代码
out_sid: 快递单号

Returns:
是否成功
"""
url = f"https://gw.api.{self.platform}.com/router/rest"

params = {
'method': 'taobao.logistics.online.send',
'app_key': self.app_key,
'timestamp': int(time.time()),
'format': 'json',
'v': '2.0',
'tid': order_id,
'company_code': company_code,
'out_sid': out_sid
}

response = self.session.post(url, params=params)
data = response.json()

return data.get('shipping_send_response', {}).get('is_success', False)

def batch_ship(self, orders: List[Dict]) -> Dict:
"""
批量发货

Args:
orders: 订单列表
[{'order_id': 'xxx', 'company_code': 'SF', 'out_sid': 'xxx'}, ...]

Returns:
处理结果
"""
success_count = 0
failed_orders = []

for order in orders:
try:
result = self.ship_order(
order_id=order['order_id'],
company_code=order['company_code'],
out_sid=order['out_sid']
)
if result:
success_count += 1
else:
failed_orders.append(order)
except Exception as e:
print(f"发货失败: {order['order_id']}, 错误: {e}")
failed_orders.append(order)

return {
'success': success_count,
'failed': failed_orders
}

def get_products(self, page: int = 1, page_size: int = 100) -> List[Dict]:
"""获取商品列表"""
# 实现获取商品列表
pass

def create_product(self, product: Dict) -> Dict:
"""
创建商品

Args:
product: 商品信息

Returns:
创建结果
"""
pass

def update_stock(self, product_id: str, quantity: int) -> bool:
"""
更新库存

Args:
product_id: 商品ID
quantity: 库存数量

Returns:
是否成功
"""
pass

2. OpenClaw Agent 集成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 创建 API 电商 Agent
ecommerce_api_agent = Agent(
name="电商API自动化助手",
instructions="""
你是一个使用官方API的电商自动化助手,负责:
1. 高效处理订单和发货
2. 批量管理商品
3. 实时库存管理
4. 数据分析和报表生成

重要规则:
- 优先使用 API 而不是 UI 操作
- 批量操作要控制频率
- 异常处理要详细记录
""",
tools=[
api_get_orders,
api_batch_ship,
api_sync_inventory,
api_analyze_sales
]
)

@ecommerce_api_agent.tool
def api_get_orders(status: str = "WAIT_SELLER_SEND_GOODS") -> Dict:
"""
通过 API 获取订单

Args:
status: 订单状态

Returns:
订单信息
"""
api = EcommerceAPI(
platform="taobao",
app_key="YOUR_APP_KEY",
app_secret="YOUR_APP_SECRET"
)

orders = api.get_orders(status=status)

return {
"count": len(orders),
"orders": orders
}

@ecommerce_api_agent.tool
def api_batch_ship_from_csv(csv_path: str) -> Dict:
"""
从 CSV 批量发货

Args:
csv_path: CSV 文件路径

Returns:
发货结果
"""
import pandas as pd

df = pd.read_csv(csv_path)

orders = df.to_dict('records')

api = EcommerceAPI(
platform="taobao",
app_key="YOUR_APP_KEY",
app_secret="YOUR_APP_SECRET"
)

result = api.batch_ship(orders)

return result

🔄 完整工作流示例

1. 每日自动化流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
async def daily_automation_workflow():
"""每日自动化工作流"""

# 1. 登录
await login_ecommerce("taobao", "username", "password")

# 2. 获取待处理订单
pending_orders = await get_pending_orders("taobao")

# 3. 检查库存
for order in pending_orders['orders']:
for product in order['products']:
stock = check_inventory(product['sku'])
if stock < product['quantity']:
send_alert(f"库存不足: {product['name']}, 当前: {stock}, 需要: {product['quantity']}")

# 4. 自动发货(如果有预设快递单)
await auto_ship_orders(pending_orders)

# 5. 生成日报
await generate_daily_report("taobao", get_today_date())

# 6. 发送通知
send_summary_notification(pending_orders)

2. 批量发货工作流

1
2
3
4
5
6
7
8
9
10
11
12
13
14
async def batch_shipment_workflow(excel_path: str):
"""批量发货工作流"""

# 1. 读取发货清单
result = await batch_ship_from_excel(excel_path)

# 2. 生成发货报告
report = generate_shipment_report(result)

# 3. 发送通知
if result['failed']:
send_error_alert(result['failed'])
else:
send_success_notification(f"成功发货 {result['success']} 单")

📋 Excel 发货清单模板

1
2
3
4
订单号,快递公司,快递单号,备注
T202403221001,SF,SF1234567890,普通快递
T202403221002,ZTO,ZTO9876543210,加急
T202403221003,YTO,YTO4561237890,偏远地区

⚠️ 重要注意事项

1. 安全和合规

  • ✅ 使用环境变量存储敏感信息
  • ✅ 实现请求频率限制
  • ✅ 遵守平台使用条款
  • ✅ 记录所有操作日志

2. 稳定性保障

  • ✅ 实现重试机制
  • ✅ 异常捕获和处理
  • ✅ 定期检查选择器/API变化
  • ✅ 备份重要数据

3. 性能优化

  • ✅ 使用并发处理批量操作
  • ✅ 缓存频繁查询的数据
  • ✅ 使用 API 优先于 UI 操作
  • ✅ 合理设置超时时间

4. 监控和告警

1
2
3
4
5
6
7
8
9
10
def send_alert(message: str):
"""发送告警"""
# 钉钉机器人
send_dingtalk_alert(message)

# Telegram
send_telegram_message(message)

# 邮件
send_email_alert(message)

🚀 部署建议

1. Docker 容器化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
FROM python:3.11-slim

WORKDIR /app

# 安装 Playwright 依赖
RUN apt-get update && \
apt-get install -y \
libnss3 \
libnspr4 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 安装 Playwright 浏览器
RUN playwright install chromium

COPY . .

CMD ["python", "main.py"]

2. 定时任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from apscheduler.schedulers.blocking import BlockingScheduler

scheduler = BlockingScheduler()

# 每天早上 9 点执行
@scheduler.scheduled_job('cron', hour=9, minute=0)
def daily_job():
daily_automation_workflow()

# 每 30 分钟检查新订单
@scheduler.scheduled_job('interval', minutes=30)
def check_orders():
check_new_orders()

scheduler.start()

📊 成功案例示例

案例1:批量发货

1
2
3
4
输入: 发货清单 Excel (500单)
输出: 成功发货 498 单,失败 2 单(原因:订单已取消)
耗时: 约 8 分钟
节省人工时间: 约 4 小时

案例2:自动库存管理

1
2
3
4
5
6
7
8
功能:
- 实时监控库存
- 库存低于阈值自动预警
- 自动生成采购建议

效果:
- 缺货率降低 60%
- 库存周转率提升 40%

💡 最佳实践建议

  1. 优先使用 API:稳定性更高,速度更快
  2. 混合方案:核心功能用 API,特殊操作用 RPA
  3. 逐步实施:从简单功能开始,逐步扩展
  4. 持续监控:实时监控系统运行状态
  5. 定期维护:及时更新选择器和 API 接口
  6. 权限管理:为自动化任务创建专用账号

需要我帮你实现某个具体功能吗?比如:

  • 完整的自动登录和发货脚本
  • Excel 批量处理工具
  • 定时任务调度系统
  • 监控和告警系统