电商竞对监控技能 🛍️
自动化监控淘宝、京东等电商平台的竞品数据,生成竞品分析日报
功能特性
✅ 竞品价格监控 — 实时追踪竞品价格变化
✅ 销量数据采集 — 监控竞品销量趋势
✅ 评价分析 — 提取用户评价和评分
✅ 日报生成 — 自动生成竞品监控日报
✅ 飞书推送 — 推送到指定飞书群或个人
✅ 定时任务 — 支持cron定时执行
快速开始
在 TOOLS.md 中配置监控参数:
电商监控配置
- 淘宝竞品链接: [竞品商品链接]
- 京东竞品链接: [竞品商品链接]
- 监控频率: 每天9点
- 飞书接收群: [飞书群ID]
- 设置定时任务
在 HEARTBEAT.md 中添加定时监控:
电商竞对监控
- [ ] 抓取竞品数据
- [ ] 分析价格变化
- [ ] 生成日报并推送
- 开始监控
# 手动执行监控
./scripts/ecommerce-monitor.sh
# 测试飞书推送
./scripts/feishu-test.sh
监控流程
数据采集流程
访问竞品页面
agent-browser open "https://item.taobao.com/item.htm?id=商品ID"
agent-browser open "https://item.jd.com/商品ID.html"
提取关键数据
# 价格提取
agent-browser eval "document.querySelector('.price').textContent"
# 销量提取
agent-browser eval "document.querySelector('.sold-count').textContent"
# 评价提取
agent-browser eval "document.querySelector('.rate-count').textContent"
数据存储
{
"product": "产品名称",
"platform": "taobao/jd",
"price": "129.00",
"sales": "5000+",
"rating": "4.8",
"timestamp": "2026-03-26 09:00:00"
}
数据分析对比
# 价格对比分析
def analyze_price_change(current_data, previous_data):
price_change = current_data['price'] - previous_data['price']
change_percent = (price_change / previous_data['price'])
100
return {
'price_change': price_change,
'change_percent': change_percent,
'trend': 'up' if price_change > 0 else 'down'
}
# 销量趋势分析
def analyze_sales_trend(data_list):
recent_sales = [d['sales'] for d in data_list[-7:]]
trend = 'stable'
if len(recent_sales) >= 2:
if recent_sales[-1] > recent_sales[0]:
trend = 'up'
elif recent_sales[-1] < recent_sales[0]:
trend = 'down'
return trend
日报生成
日报模板
# 电商竞对监控日报 📊
监控日期: {{date}}
监控产品: {{product_count}} 个竞品
📈 价格变化趋势
| 产品 | 平台 | 当前价格 | 昨日价格 | 变化 | 趋势 |
|------|------|----------|----------|------|------|
| {{product1}} | 淘宝 | {{price1}} | {{yesterday1}} | {{change1}} | {{trend1}} |
| {{product2}} | 京东 | {{price2}} | {{yesterday2}} | {{change2}} | {{trend2}} |
📊 销量数据
| 产品 | 平台 | 当前销量 | 7日趋势 | 热销指数 |
|------|------|----------|---------|----------|
| {{product1}} | 淘宝 | {{sales1}} | {{trend1}} | {{hot1}} |
⭐ 用户评价
好评关键词
- {{positive_word1}}
- {{positive_word2}}
差评关键词
- {{negative_word1}}
- {{negative_word2}}
💡 竞品洞察
- {{insight1}}
- {{insight2}}
- {{insight3}}
🎯 行动建议
- {{suggestion1}}
- {{suggestion2}}
---
数据来源: 淘宝、京东 | 生成时间: {{generate_time}}
日报生成脚本
#!/bin/bash
# scripts/generate-report.sh
# 拉取最新数据
python scripts/fetch-data.py --output data/latest.json
# 生成日报
python scripts/generate-report.py --template daily --output reports/daily-$(date +%Y-%m-%d).md
# 推送到飞书
python scripts/send-to-feishu.py --file reports/daily-$(date +%Y-%m-%d).md --target "飞书群ID"
echo "日报已生成并推送: reports/daily-$(date +%Y-%m-%d).md"
飞书集成
飞书消息推送
# scripts/send-to-feishu.py
import requests
import json
def send_feishu_message(content, target_group):
"""发送消息到飞书群"""
webhook_url = f"https://open.feishu.cn/open-apis/bot/v2/hook/{target_group}"
payload = {
"msg_type": "post",
"content": {
"post": {
"zh_cn": {
"title": "电商竞对监控日报",
"content": content
}
}
}
}
response = requests.post(webhook_url, json=payload)
return response.status_code == 200
富文本消息格式
{
"msg_type": "post",
"content": {
"post": {
"zh_cn": {
"title": "竞品监控日报",
"content": [
[
{
"tag": "text",
"text": "今日监控发现:"
},
{
"tag": "a",
"text": "产品A价格下降5%",
"href": "https://item.taobao.com/item.htm?id=xxx"
}
]
]
}
}
}
}
定时任务配置
Cron配置示例
# 每天9点执行监控
0 9 /home/yesno/.openclaw/workspace/skills/ecommerce-monitor/scripts/monitor.sh
# 每小时监控一次(测试用)
0
/home/yesno/.openclaw/workspace/skills/ecommerce-monitor/scripts/monitor.sh
OpenClaw Heartbeat集成
在 HEARTBEAT.md 中添加:
电商竞对监控 (09:00)
- [ ] 执行竞品数据采集
- [ ] 分析价格销量变化
- [ ] 生成监控日报
- [ ] 推送到飞书群
数据存储
数据结构
{
"monitoring_data": [
{
"product_id": "商品ID",
"platform": "taobao/jd",
"product_name": "产品名称",
"current_price": 129.00,
"previous_price": 139.00,
"sales_count": "5000+",
"rating_score": 4.8,
"review_count": 1250,
"monitor_time": "2026-03-26 09:00:00",
"price_change": -10.00,
"change_percent": -7.19
}
]
}
数据持久化
# scripts/data-manager.py
import json
import os
class DataManager:
def __init__(self, data_file="data/monitoring.json"):
self.data_file = data_file
os.makedirs(os.path.dirname(data_file), exist_ok=True)
def save_data(self, data):
"""保存监控数据"""
existing_data = self.load_data()
existing_data['monitoring_data'].append(data)
with open(self.data_file, 'w', encoding='utf-8') as f