帮我找竞品
前置条件
- Sorftime MCP 连接器已连接(检查 mcp__sorftime__ 系列工具是否可用)—— 用于产品详情、销量趋势、类目报告
- 西柚洞察 MCP 连接器已连接(检查 mcp__xydc-mcp 系列工具是否可用)—— 用于关键词深度分析
- 若 Sorftime 不可用,提示用户在连接器管理中启用 Sorftime MCP
- 若西柚洞察不可用,提示用户在连接器管理中启用西柚洞察 MCP(关键词分析为报告核心模块,不可跳过)
- Python 环境需安装 openpyxl 和 Pillow(用于生成 XLSX 和嵌入图片)
工作流程
Step 1: 解析 ASIN
从用户输入中提取 ASIN(10位字母数字组合,以 B 开头)。支持从亚马逊 URL 中解析:
https://www.amazon.com/dp/B0XXXXXXX→ ASIN = B0XXXXXXXhttps://www.amazon.com/dp/B0XXXXXXX?th=1&psc=1→ ASIN = B0XXXXXXX
Step 2: 并行拉取目标产品数据
同时调用以下 Sorftime 工具(amz_site 默认 "US",除非用户指定其他站点):
| 工具 | 参数 | 用途 |
|------|------|------|
| mcp__sorftime__product_detail | asin, amz_site | 获取标题、品牌、价格、销量、评分、类目 node_id、主图 URL |
| mcp__sorftime__product_traffic_terms | asin, amz_site | 获取 Sorftime 流量词及排名(用于 Sheet 5 交叉验证) |
| mcp__sorftime__product_trend | asin, product_trend_type="SalesVolume", amz_site | 获取月销量历史趋势(Sheet 2 销量列) |
| mcp__sorftime__product_trend | asin, product_trend_type="Price", amz_site | 获取月度均价历史趋势(Sheet 2 均价列);若该趋势类型不可用,回退使用 product_detail 中的当前售价 |
同时调用以下西柚洞察工具(与 Sorftime 并行):
| 工具 | 参数 | 用途 |
|------|------|------|
| mcp__xydc-mcp__get_asin_keywords | asin | ASIN 反查关键词(自然/广告流量、排名、流量获得率),通常返回 100-200 个关键词 |
| mcp__xydc-mcp__get_asin_keyword_rank_trends | asin | ASIN 关键词排名趋势 |
| mcp__xydc-mcp__get_asin_keyword_traffic_trends | asin | ASIN 关键词流量趋势 |
注意:这 7 个调用互相独立,应在同一轮并行执行。西柚洞察返回的关键词数据将作为 Sheet 3 的核心数据源,Sorftime 的两组 product_trend 分别为 Sheet 2 提供销量和均价数据。
Step 2.5: 拉取关键词市场指标与竞品 ASIN
从 Step 2 的 get_asin_keywords 结果中,选取 Top 20 关键词(按流量获得率或搜索量降序),然后并行调用:
| 工具 | 参数 | 用途 |
|------|------|------|
| mcp__xydc-mcp__get_keyword_info | keyword(逐个调用,最多 20 个) | 获取每个关键词的周搜索量、ABA 排名、竞争难度、CPC、点击转化率、Top3 ASIN |
| mcp__xydc-mcp__get_keyword_analysis_monthly | keyword | 关键词月度分析数据 |
| mcp__xydc-mcp__get_keyword_asin_analysis | keyword(选 1-3 个核心词) | 核心词反查竞品 ASIN Top20(含 ASIN、标题、品牌、销量、点击份额等) |
核心词选取规则:从反查关键词中选搜索量最大、与产品最匹配的 1-3 个词(如产品标题中的核心品类词)。
Step 3: 拉取类目 Top100 报告
从 Step 2 的 product_detail 响应中提取 node_id 和 subcategory 字段,调用:
mcp__sorftime__category_report(node_id=<node_id>, amz_site="US")
返回该子类目下按月销量排序的 Top100 产品列表,含 ASIN、标题、品牌、价格、月销量、月销额、评分、评论数、排名、毛利率、卖家等。
若 Step 2.5 的西柚洞察核心词竞品 ASIN 中发现了不在 Top100 列表中的重要竞品(如跨类目的成人款),也应将其纳入竞品对比范围,在 Sheet 4 中标注"跨类目竞品(西柚洞察发现)"。
Step 4: 筛选直接竞品
从 Top100 列表中筛选直接竞品,筛选规则:
- 属性匹配:从目标产品标题中提取核心关键词(如 "wide toe box" "barefoot" "zero drop" "minimalist" 等),在 Top100 标题中匹配
- 品牌分组:同品牌产品也列出(标记为自有品牌),但不计入外部竞品
- 排除目标产品自身
- 按月销量降序排列
若 Top100 中匹配结果不足 5 个,可适当放宽关键词匹配条件。
Step 5: 批量获取竞品图片
对每个筛选出的竞品 ASIN,调用 mcp__sorftime__product_detail 获取 main_image 字段(JSON 字符串数组,第一个元素为主图)。
优化:若竞品数量 > 10 个,可分批并行调用(每批 5 个)。目标产品自身已在 Step 2 获取过,无需重复。
Step 6: 生成 XLSX 报告
使用 Python + openpyxl 生成 XLSX 报告,保存到当前工作目录下 <ASIN>_competitor_analysis.xlsx。
技术实现要点
-
图片下载与嵌入:
- 用
urllib.request或requests下载每个产品的主图到临时目录 - 用
openpyxl.drawing.image.Image将图片嵌入到对应行的单元格上方 - 图片缩放至约 80×80 像素,锚定到对应行的指定列(如 B 列)
- 设置对应行高约 65 磅,图片列宽约 12 字符
- 下载失败的图片显示占位文字"图片不可用"
- 用
-
Python 脚本模板:
import json, urllib.request, tempfile, os from openpyxl import Workbook from openpyxl.drawing.image import Image as XlImage from openpyxl.styles import Font, PatternFill, Alignment, Border, Side from openpyxl.utils import get_column_letter from PIL import Image as PILImage # 下载图片 def download_image(url, tmpdir): try: path = os.path.join(tmpdir, f"img_{hash(url)}.png") urllib.request.urlretrieve(url, path) return path except: return None # 嵌入图片到单元格 def embed_image(ws, image_path, cell, max_size=80): if not image_path: ws[cell] = "图片不可用" return img = XlImage(image_path) # 缩放 ratio = min(max_size / img.width, max_size / img.height) img.width = int(img.width * ratio) img.height = int(img.height * ratio) ws.add_image(img, cell) -
环境准备(在执行脚本前运行):
# 确保 venv 中有 openpyxl 和 Pillow pip install openpyxl Pillow -
Sheet 2 数据结构(销量+均价趋势):
# sales_trend 每个元素为 (月份, 月销量, 均价, 环比变化) # 均价来自 Sorftime product_trend(type="Price"),若不可用则用当前售价 # 环比变化基于月销量计算,格式如 "+87.6%" 或 "-12.3%" sales_trend = [ ("2026-06", 49, 36.99, ""), ("2026-07", 759, 36.99, "+1446.9%"), ("2026-08", 1424, 36.99, "+87.6%") ] # Sheet 2 表头:["月份", "月销量", "均价", "环比变化"] # 均价列格式:$36.99(带$前缀,保留两位小数) # 合并单元格范围需从3列扩展为4列(如 ws.merge_cells('A2:D2'))
XLSX 工作簿结构(7 个 Sheet)
Sheet 1: 目标产品速览
- 第 1-2 行:标题行 + 免责声明(合并单元格,橙底白字)
- 第 4 行起:产品基本信息表(属性 | 值),含以下行:
- 主图(B4 单元格嵌入图片,行高 65)
- ASIN、品牌、标题、售价、月销量、月销额、毛利率、评分、评论数、上架天数、类目排名
- 样式:表头粗体灰底,数据行白底
Sheet 2: 销量趋势
- 月度销量表格(月份 | 月销量 | 均价 | 环比变化)
- 均价列:来自 Sorftime
product_trend的月度均价数据,或基于当月实际成交价计算的平均售价;若数据不可用,展示当前售价并标注"价格稳定/无波动" - 最后一行附趋势解读文字(合并单元格,自动换行),解读中需包含销量增长/下滑趋势和均价波动趋势两个维度
Sheet 3: 西柚洞察关键词分析(核心升级模块,含 3 个子表)
子表 A — ASIN 反查关键词 Top50(来自 get_asin_keywords):
- 表头:序号 | 关键词 | 自然流量 | 广告流量 | 自然排名 | 流量获得率 | 广告获得率
- 按流量获得率降序排列,展示前 50 个关键词
- 底部附汇总行:总关键词数、有自然流量的词数、有广告流量的词数
子表 B — 关键词市场指标 Top20(来自 get_keyword_info):
- 表头:序号 | 关键词 | 周搜索量 | ABA 排名 | 竞争难度 | CPC | 点击转化率 | Top3 ASIN
- 按周搜索量降序排列
- 竞争难度用数值+高/中/低标注
- Top3 ASIN 列显示该关键词下点击份额最高的 3 个 ASIN(超链接到亚马逊)
子表 C — 核心词竞品 ASIN Top20(来自 get_keyword_asin_analysis):
- 表头:序号 | ASIN | 标题 | 品牌 | 点击份额 | 销量 | 价格
- 按点击份额降序排列
- ASIN 超链接到亚马逊
- 标注目标产品自身(如有出现在列表中)和自有品牌产品
- 底部附"关键发现"文字段(合并单元格),总结:
- 核心词下竞品总数
- 头部品牌集中度(Top3 品牌占多少席)
- 目标产品在核心词下的排名位置
- 是否发现自有品牌的其他产品在核心词下曝光
Sheet 4: 直接竞品对比
- 表头行:图片 | ASIN | 品牌 | 标题 | 售价 | 月销量 | 月销额 | 评分 | 评论数 | 类目排名 | 毛利率 | 卖家 | 竞品类型
- 每个竞品一行,B 列嵌入主图缩略图,行高 65 磅
- "竞品类型"列标注:外部竞品 / 自有品牌
- ASIN 列超链接到
https://www.amazon.com/dp/{ASIN} - 外部竞品行用浅红底色标记,自有品牌行用浅紫底色标记
- 表头冻结
Sheet 5: 竞品格局与洞察
- 顶部:竞品梯队分组表(梯队 | ASIN | 品牌 | 月销量 | 价格区间 | 特征标签)
- 梯队分:头号竞品 / 第二梯队 / 新兴搅局者
- 数据来源:Sorftime 类目 Top100 筛选 + 西柚洞察核心词竞品 ASIN 交叉
- 中部:竞争格局综述(合并单元格大段文字),包含:
- 类目内竞争格局(基于 Sorftime Top100 数据)
- 核心词搜索竞争格局(基于西柚洞察数据,如核心词下竞品总数、头部品牌集中度)
- 自有品牌交叉发现:通过西柚洞察核心词竞品 ASIN 反查,发现是否有公司旗下其他品牌/产品出现在核心词竞品中(这是西柚洞察独有的增量价值)
- 底部:分析建议(分新品 / 老品两个方向):
- 标题行:"针对新品的建议方向"(绿底白字)
- 建议内容(合并单元格,自动换行):基于竞品数据,从定价策略、差异化卖点、流量切入点、评价积累节奏、上架时机等维度给出新品切入建议
- 标题行:"针对老品的优化建议"(蓝底白字)
- 建议内容(合并单元格,自动换行):基于竞品对比,从价格调整、Listing 优化、广告策略、防御性动作、流量词拓展等维度给出老品优化建议
- 标题行:"针对老品的防御策略"(红底白字)
- 建议内容:针对头号竞品的威胁,给出防御性策略建议
Sheet 6: 类目大盘数据
- Top100 汇总指标卡片(指标 | 数值):总月销量、总月销额、平均售价、平均评分、平均评论数
- Top3 品牌表(排名 | 品牌 | 月销量 | 月销额 | 市占率)
- Top3 卖家表(排名 | 卖家 | 月销量 | 月销额 | 市占率)
Sheet 7: 总结与免责声明
-
竞争格局总结(大段文字,合并单元格)
-
目标产品问题清单(编号列表,每条一行)
-
免责声明(合并单元格,红底白字,粗体):
⚠️ 免责声明
本报告由 AI 基于 Sorftime 数据和西柚洞察数据自动生成,所有分析意见(包括新品/老品建议方向、竞争格局判断、问题清单等)仅作为 AI 分析参考,整体思路需要自行判断。数据可能存在延迟或偏差,请结合实际市场情况和其他数据源综合决策。任何基于本报告的商业决策风险由决策者自行承担。
样式规范
| 元素 | 样式 | |------|------| | Sheet 标题行 | 14号粗体,深蓝底白字,合并居中 | | 表头行 | 11号粗体,灰底(#D9D9D9) | | 数据行 | 10号常规,白底 | | 外部竞品行 | 浅红底(#FCE4EC) | | 自有品牌行 | 浅紫底(#F3E5F5) | | 免责声明 | 11号粗体,红底(#FFEBEE) | | 新品建议标题 | 绿底(#E8F5E9) | | 老品建议标题 | 蓝底(#E3F2FD) | | 老品防御标题 | 红底(#FFEBEE) | | 图片列 | 列宽 15,行高 65 | | 长文本单元格 | 自动换行(wrap_text=True),垂直居中 |
Step 7: 展示报告
使用 present_files 展示生成的 XLSX 文件,并在对话中给出核心结论速览(含免责声明提醒)。
数据处理注意事项
Sorftime 数据
main_image字段是 JSON 字符串(非数组),需用json.loads()解析后取第一个元素作为主图- 部分产品可能返回空图片列表,此时显示占位文字"图片不可用"
monthly_sales_volume为 0 或grossprofit_rate为 -1 表示数据不可用,标注 N/A- Sheet 2 均价列:优先从 Sorftime
product_trend的月度价格/均价数据获取;若不可用,使用当前售价并标注"价格稳定";均价波动需结合 Coupon、促销、变体价格分布综合判断 - 类目排名格式为 "子类目名 (Rank: N)",需解析展示
- 不同站点的币种不同,美站为 USD,展示价格时标注 $
- 图片下载需设置
Referer头避免部分防盗链拦截:urllib.request.Request(url, headers={'Referer': 'https://www.amazon.com/'}) - XLSX 嵌入图片需用 openpyxl 的
add_image()方法,图片格式支持 PNG/JPEG - 临时图片文件在 XLSX 生成完成后可清理,openpyxl 会将图片数据嵌入 xlsx 文件中
西柚洞察数据
get_asin_keywords返回的关键词列表通常为 100-200 个,取 Top 50 展示在 Sheet 3 子表 Aget_keyword_info需逐个关键词调用,建议选 Top 20 关键词批量调用(可并行)get_keyword_asin_analysis的 keyword 参数选 1-3 个核心词(搜索量最大、与产品最匹配的品类词)- 西柚洞察返回的排名数据为 Page 级别(P1/P2/P3...),非精确排名位
- 流量获得率 = 该关键词给 ASIN 带来的流量占该 ASIN 总流量的百分比
- 竞争难度数值范围 0-10,0-3 为低竞争,4-6 为中等,7-10 为高竞争
- Top3 ASIN 字段可能返回 JSON 字符串或列表,需做类型兼容处理
- 若西柚洞察 MCP 调用返回错误或空数据,在对应 Sheet 中标注"西柚洞察数据暂不可用",不影响其他 Sheet 生成
XLSX 生成注意事项
- 合并单元格时注意
end_row不要跨多行,否则后续行落入合并区域会触发'MergedCell' object attribute 'value' is read-only错误(图片合并范围用end_row=start_row单行合并) - 拼接字符串前检查 None 值,避免
unsupported operand type(s) for +=: 'NoneType' and 'str'错误(用" | ".join(f"{k}: {v}" for k, v in attrs.items())代替+=拼接)
新品 vs 老品分析框架
针对新品的建议方向
从以下维度分析并给出可执行建议:
- 定价策略:竞品价格区间分布,新品切入的定价建议(高性价比 vs 高端定位)
- 差异化卖点:基于竞品评论痛点,找出未被满足的需求空白
- 流量切入点:基于西柚洞察关键词市场指标,找出竞争难度低(0-3)但有一定周搜索量的关键词,适合新品起步投放
- 评价积累节奏:竞品上架初期的评价增长曲线,预估 Vine + 自然评价节奏
- 上架时机:结合类目销量趋势,判断最佳上架时间窗口
- 首批备货量:基于竞品月销量中位数,建议首批备货量
- 关键词布局策略:基于西柚洞察 ASIN 反查关键词的流量获得率分布,建议新品优先布局的自然排名词和广告投放词
针对老品的优化建议
从以下维度分析并给出可执行建议:
- 价格调整:对比竞品价格,判断当前定价是否合理(偏高/偏低)
- Listing 优化:对比竞品标题关键词覆盖度,结合西柚洞察反查关键词找出目标产品未覆盖但有流量的关键词
- 广告策略:基于西柚洞察关键词 CPC 和竞争难度数据,判断哪些词值得加大投入(低 CPC + 高搜索量),哪些可缩减(高 CPC + 低转化)
- 评价管理:对比评论数和评分,判断评价差距及追赶策略
- 防御性动作:针对头号竞品的威胁,给出价格防御、差异化强化等建议
- 流量拓展:发现竞品有但目标产品未覆盖的流量词机会(西柚洞察反查关键词对比分析)
- 核心词排名监控:基于西柚洞察排名趋势数据,识别排名下滑的关键词并给出优化建议
微信扫一扫