编程

Ecommerce Review Analyzer

试用

淘宝京东拼多多评论分析工具。自动抓取商品评论,分析好评差评,生成专业分析报告。支持多店铺多商品对比,差评详情分析,改进建议。电商运营必备工具。

它能做什么

🛒 **三平台支持**:淘宝、京东、拼多多 📊 **自动抓取**:浏览器自动化获取评论 🧠 **智能分析**:AI分析评论内容和情感 📈 **评分统计**:好评率、差评率、评分分布 💬 **差评详情**:完整差评内容和出处 💡 **改进建议**:AI生成改进建议 📄 **专业报告**:Word和PDF双格式输出 🎯 **多商品对比**:同一店铺多个商品对比 🏪 **多店铺对比**:不同店铺对比分析 💡 **改进建议**: AI生成改进建议 📄 **专业报告**: Word (.docx) + PDF 输出 🎯 **多商品**: 支持同一店铺多个商品 🏪 **多店铺*…

技能文档

淘宝京东拼多多评论分析工具

自动抓取商品评论,分析好评差评,生成专业分析报告。

功能特点

  • 🛒 三平台支持:淘宝、京东、拼多多
  • 📊 自动抓取:浏览器自动化获取评论
  • 🧠 智能分析:AI分析评论内容和情感
  • 📈 评分统计:好评率、差评率、评分分布
  • 💬 差评详情:完整差评内容和出处
  • 💡 改进建议:AI生成改进建议
  • 📄 专业报告:Word和PDF双格式输出
  • 🎯 多商品对比:同一店铺多个商品对比
  • 🏪 多店铺对比:不同店铺对比分析
  • 💡 改进建议: AI生成改进建议
  • 📄 专业报告: Word (.docx) + PDF 输出
  • 🎯 多商品: 支持同一店铺多个商品
  • 🏪 多店铺: 支持不同店铺对比分析
  • 🛒 多平台: 支持淘宝/京东/拼多多对比

使用场景

  • "分析淘宝店铺评论" / "Analyze Taobao reviews"
  • "查看京东差评" / "Check JD negative reviews"
  • "帮我分析这个产品的用户反馈"
  • "ecommerce-review-analyzer"

支持平台

平台方式需要登录
淘宝浏览器自动化✅
京东浏览器自动化✅
拼多多浏览器自动化✅

前置条件

  • OpenClaw v2026.3.22+ (浏览器自动化)
  • 必须使用OpenClaw内置浏览器自动化(不支持第三方浏览器工具)
  • 已登录目标电商平台
  • 已配置OpenClaw browser工具

⚠️ 重要声明

本技能强制使用OpenClaw内置浏览器自动化功能。 不支持Playwright、Selenium等第三方浏览器工具。 必须使用OpenClaw v2026.3.22+的browser工具。 浏览器会话继承用户已登录状态。


工作流程

用户请求
    ↓
1. 检测登录状态
    ↓
2. 协助扫码登录(如需要)
    ↓
3. 抓取商品评论
    ↓
4. AI分析评论内容
    ↓
5. 生成专业报告(Word+PDF)

输出格式

Word报告 (.docx)

包含:

  • 商品基本信息
  • 评分分布表格
  • 差评详情(含完整评论)
  • 改进建议

PDF报告

与Word内容完全一致,便于打印。


示例报告

┌─────────────────────────────────────────────┐
│  📊 商品评论分析报告                         │
└─────────────────────────────────────────────┘

商品:智能手表 Pro
平台:淘宝 / 京东
分析评论:1,234条

📊 评分分布
├─ ⭐⭐⭐⭐⭐ 好评:78% (970条)
├─ ⭐⭐⭐ 中评:15% (186条)
└─ ⭐⭐ 差评:7% (78条)

💬 差评详情

差评 1: ⭐⭐
"充电太慢了,充满要4个小时,退货!"
👤 用户B | 📅 2026-03-18 | 🏪 科技旗舰店

差评 2: ⭐
"App经常闪退,客服态度差,差评!"
👤 用户C | 📅 2026-03-15 | 🏪 科技旗舰店

💡 改进建议
• 优化充电速度
• 修复App稳定性
• 加强客服培训

浏览器自动化代码

抓取淘宝评论

// 1. 打开商品页面
await browser.open({
  url: "https://item.taobao.com/item.htm?id=商品ID"
})

// 2. 等待页面加载
await browser.wait({ timeout: 5000 })

// 3. 检查是否需要登录
const needsLogin = await browser.evaluate(() => {
  return document.querySelector('.login-dialog') !== null
})

if (needsLogin) {
  // 协助用户扫码登录
  const qrImage = await browser.screenshot({ selector: '.qrcode-img' })
  await chat.send("⚠️ 请扫描二维码登录淘宝:", { image: qrImage })
  await browser.waitForNavigation({ timeout: 120000 })
}

// 4. 点击"评价"标签
await browser.click({ selector: 'a[href="#J_TabBar"]' })
await browser.wait({ timeout: 3000 })

// 5. 滚动加载更多评论
for (let i = 0; i < 3; i++) {
  await browser.evaluate(() => window.scrollBy(0, 500))
  await browser.wait({ timeout: 1000 })
}

// 6. 提取评论数据
const reviews = await browser.evaluate(() => {
  const items = []
  document.querySelectorAll('.J_KgRate_ReviewItem').forEach(el => {
    const rating = el.querySelector('.tb-rev-item-rating')?.children.length || 0
    const content = el.querySelector('.tb-rev-item__body-text')?.innerText || ''
    const user = el.querySelector('.tb-rev-item__user-name')?.innerText || ''
    const date = el.querySelector('.tb-rev-item__time')?.innerText || ''
    
    items.push({
      rating: rating,
      content: content.trim(),
      user: user.trim(),
      date: date.trim()
    })
  })
  return items
})

return reviews

抓取京东评论

// 1. 打开商品页面
await browser.open({
  url: "https://item.jd.com/商品ID.html"
})

// 2. 等待加载
await browser.wait({ timeout: 5000 })

// 3. 滚动到评论区
await browser.evaluate(() => {
  const element = document.querySelector('#comment')
  if (element) element.scrollIntoView()
})
await browser.wait({ timeout: 2000 })

// 4. 提取评论
const reviews = await browser.evaluate(() => {
  const items = []
  document.querySelectorAll('.comment-item').forEach(el => {
    const rating = el.querySelector('.comment-star')?.className.match(/\d+/) || [0]
    const content = el.querySelector('.comment-con')?.innerText || ''
    const user = el.querySelector('.user-name')?.innerText || ''
    const date = el.querySelector('.comment-date')?.innerText || ''
    
    items.push({
      rating: parseInt(rating[0]) || 5,
      content: content.trim(),
      user: user.trim(),
      date: date.trim()
    })
  })
  return items
})

return reviews

抓取拼多多评论

// 1. 打开商品页面
await browser.open({
  url: "https://mobile.yangkeduo.com/goods.html?goods_id=商品ID"
})

// 2. 等待加载
await browser.wait({ timeout: 5000 })

// 3. 点击评价标签
await browser.click({ selector: '[class*="comment"]' })
await browser.wait({ timeout: 2000 })

// 4. 提取评论
const reviews = await browser.evaluate(() => {
  const items = []
  document.querySelectorAll('[class*="comment-item"]').forEach(el => {
    const content = el.innerText || ''
    if (content.length > 10) {
      items.push({
        content: content.trim(),
        platform: '拼多多'
      })
    }
  })
  return items
})

return reviews

Python代码示例

from docx import Document
from docx.shared import Pt, Cm, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from fpdf import FPDF
from datetime import datetime
import os

class ReviewAnalyzer:
    def __init__(self):
        self.reviews = []
    
    def add_review(self, product, platform, store, rating, content, date, user):
        """添加评论数据"""
        self.reviews.append({
            'product': product,
            'platform': platform,
            'store': store,
            'rating': rating,
            'content': content,
            'date': date,
            'user': user
        })
    
    def analyze(self):
        """分析评论数据"""
        total = len(self.reviews)
        if total == 0:
            return None
        
        positive = len([r for r in self.reviews if r['rating'] >= 4])
        negative = len([r for r in self.reviews if r['rating'] <= 2])
        neutral = total - positive - negative
        avg_rating = sum(r['rating'] for r in self.reviews) / total
        
        return {
            'total': total,
            'positive': positive,
            'negative': negative,
            'neutral': neutral,
            'avg_rating': avg_rating,
            'positive_rate': positive / total * 100,
            'negative_rate': negative / total * 100,
            'negative_reviews': [r for r in self.reviews if r['rating'] <= 2]
        }
    
    def generate_word_report(self, analysis, output_path):
        """生成Word报告"""
        doc = Document()
        section = doc.sections[0]
        section.top_margin = Cm(2)
        section.bottom_margin = Cm(2)
        section.left_margin = Cm(2.5)
        section.right_margin = Cm(2.5)
        
        # 标题
        title = doc.add_heading('Product Review Analysis Report', 0)
        title.alignment = WD_ALIGN_PARAGRAPH.CENTER
        
        # 基本信息
        info_table = doc.add_table(rows=4, cols=2)
        info_table.style = 'Table Grid'
        info_table.cell(0, 0).text = 'Product'
        info_table.cell(0, 1).text = self.reviews[0]['product'] if self.reviews else 'N/A'
        info_table.cell(1, 0).text = 'Platform'
        info_table.cell(1, 1).text = self.reviews[0]['platform'] if self.reviews else 'N/A'
        info_table.cell(2, 0).text = 'Reviews'
        info_table.cell(2, 1).text = str(analysis['total'])
        info_table.cell(3, 0).text = 'Date'
        info_table.cell(3, 1).text = datetime.now().strftime('%Y-%m-%d')
        
        doc.add_paragraph()
        
        # 评分分布
        h = doc.add_heading('Rating Distribution', level=1)
        
        rating_table = doc.add_table(rows=4, cols=3)
        rating_table.style = 'Table Grid'
        rating_table.cell(0, 0).text = 'Rating'
        rating_table.cell(0, 1).text = 'Count'
        rating_table.cell(0, 2).text = 'Percentage'
        rating_table.cell(1, 0).text = 'Positive (4-5)'
        rating_table.cell(1, 1).text = str(analysis['positive'])
        rating_table.cell(1, 2).text = f"{analysis['positive_rate']:.1f}%"
        rating_table.cell(2, 0).text = 'Neutral (3)'
        rating_table.cell(2, 1).text = str(analysis['neutral'])
        rating_table.cell(2, 2).text = f"{analysis['neutral'] / analysis['total'] * 100:.1f}%"
        rating_table.cell(3, 0).text = 'Negative (1-2)'
        rating_table.cell(3, 1).text = str(analysis['negative'])
        rating_table.cell(3, 2).text = f"{analysis['negative_rate']:.1f}%"
        
        doc.add_paragraph()
        
        # 差评详情
        h = doc.add_heading('Negative Reviews', level=1)
        
        for i, review in enumerate(analysis['negative_reviews'], 1):
            entry = doc.add_paragraph()
            run = entry.add_run(f'Review {i}: {"*" * review["rating"]}')
            run.font.bold = True
            
            quote = doc.add_paragraph()
            quote.add_run(f'"{review["content"]}"').font.italic = True
            
            detail = doc.add_paragraph()
            detail.add_run(f'User: {review["user"]} | Date: {review["date"]}').font.color.rgb = RGBColor(100, 100, 100)
            
            doc.add_paragraph()
        
        doc.save(output_path)
        return output_path
    
    def generate_pdf_report(self, analysis, output_path):
        """生成PDF报告"""
        pdf = FPDF()
        pdf.add_page()
        pdf.set_auto_page_break(auto=True, margin=15)
        
        # 标题
        pdf.set_font('Helvetica', 'B', 20)
        pdf.set_text_color(30, 60, 114)
        pdf.cell(0, 12, 'Product Review Analysis', new_x='LMARGIN', new_y='NEXT', align='C')
        pdf.ln(5)
        
        # 基本信息
        pdf.set_font('Helvetica', '', 11)
        pdf.set_text_color(51, 51, 51)
        pdf.cell(0, 6, f'Reviews: {analysis["total"]}', new_x='LMARGIN', new_y='NEXT')
        pdf.ln(5)
        
        # 评分分布
        pdf.set_font('Helvetica', 'B', 14)
        pdf.set_text_color(30, 60, 114)
        pdf.cell(0, 8, 'Rating Distribution', new_x='LMARGIN', new_y='NEXT')
        pdf.ln(5)
        
        pdf.set_font('Helvetica', '', 11)
        pdf.set_text_color(51, 51, 51)
        pdf.cell(0, 6, f'Positive: {analysis["positive"]} ({analysis["positive_rate"]:.1f}%)', new_x='LMARGIN', new_y='NEXT')
        pdf.cell(0, 6, f'Negative: {analysis["negative"]} ({analysis["negative_rate"]:.1f}%)', new_x='LMARGIN', new_y='NEXT')
        pdf.ln(5)
        
        # 差评详情
        pdf.set_font('Helvetica', 'B', 14)
        pdf.set_text_color(30, 60, 114)
        pdf.cell(0, 8, 'Negative Reviews', new_x='LMARGIN', new_y='NEXT')
        pdf.ln(5)
        
        pdf.set_font('Helvetica', '', 10)
        pdf.set_text_color(51, 51, 51)
        for i, review in enumerate(analysis['negative_reviews'], 1):
            pdf.cell(0, 6, f'Review {i}: {"*" * review["rating"]}', new_x='LMARGIN', new_y='NEXT')
            pdf.multi_cell(0, 5, f'"{review["content"]}"')
            pdf.cell(0, 5, f'User: {review["user"]} | Date: {review["date"]}', new_x='LMARGIN', new_y='NEXT')
            pdf.ln(5)
        
        pdf.output(output_path)
        return output_path

# 使用示例
analyzer = ReviewAnalyzer()

# 添加评论
analyzer.add_review('Smart Watch Pro', 'Taobao', 'Tech Store', 5, 'Very good!', '2026-03-20', 'User A')
analyzer.add_review('Smart Watch Pro', 'Taobao', 'Tech Store', 2, 'Bad quality!', '2026-03-15', 'User B')

# 分析
analysis = analyzer.analyze()

# 生成报告
analyzer.generate_word_report(analysis, 'report.docx')
analyzer.generate_pdf_report(analysis, 'report.pdf')

Notes

  • 使用OpenClaw内置浏览器自动化
  • 需要登录电商平台
  • 支持中文评论分析
  • 数据准确性优先
  • 数据准确性优先
  • 支持中文评论分析

相关技能

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván855 次安装69 星标

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván559 次安装18 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai22 次安装8 星标

tobewin 的更多技能

浏览全部技能

用一份 JSON 描述就能生成标准可编辑的 PPTX,自带 11 种版式与 5 套配色。

作者 ToBeWin329 次安装3 星标

把 Word、PDF、Excel、PowerPoint、HTML、Markdown 与 TXT 文档翻译成另一种语言,同时保留原始排版。

作者 tobewin36 次安装1 星标

Professional Excel spreadsheet generator. Use when user needs to create data tables, reports, charts, financial models, or any structured data in Excel forma...

作者 ToBeWin82 次安装3 星标

中国新闻资讯聚合工具。Use when user wants to get latest news from Chinese sources. Supports multiple news sites (Sina, Sohu, NetEase, Tencent) via browser automation an...

作者 ToBeWin57 次安装3 星标

Data analysis tool for Excel, CSV, Word, PDF, TXT, Markdown files. Use when user needs to analyze, summarize, or compare data from multiple files. Supports f...

作者 ToBeWin68 次安装1 星标

Marketing plan generator with web research and Word output. Use when user needs to create marketing plans, promotional campaigns, social media strategies. Fe...

作者 ToBeWin31 次安装1 星标