ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何汇总多个来源的产品评论
教程

如何汇总多个来源的产品评论

使用 Python 构建评论聚合管道,使用 Scavio API 从 Amazon 和 Google 收集产品评论并计算统一的情绪评分。

获取免费API密钥API文档

单一评论来源可能存在偏见或覆盖面有限。汇总来自亚马逊(经过验证的购买者)和谷歌(来自整个网络的编辑和用户评论)的评论可以提供更具代表性的产品接收情况。本教程使用 Scavio API 构建评论聚合管道,该管道从多个来源收集评论,将星级评级标准化为 5 分制,并计算加权聚合分数。

前置条件

  • Python 3.8 或更高版本
  • 请求已安装库
  • Scavio API 密钥
  • 基本统计理解

操作指南

步骤 1: 获取亚马逊评论

查询产品的 Scavio Amazon 端点并提取其评论数组和平均评分。

Python
def amazon_reviews(asin: str) -> dict:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"platform": "amazon", "query": asin, "marketplace": "US"})
    r.raise_for_status()
    data = r.json()
    return {"rating": data.get("product", {}).get("rating"), "reviews": data.get("reviews", [])}

步骤 2: 获取 Google 评论信号

在 Google 中搜索产品评论并提取包含评级提及的片段。

Python
def google_review_signals(product_name: str) -> list[str]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": f"{product_name} review rating", "country_code": "us"})
    r.raise_for_status()
    results = r.json().get("organic_results", [])
    return [r.get("snippet", "") for r in results if r.get("snippet")]

步骤 3: 计算综合评级

对亚马逊评论的星级评分进行平均以产生加权分数。

Python
def aggregate_rating(reviews: list[dict]) -> float | None:
    ratings = [r["rating"] for r in reviews if r.get("rating")]
    if not ratings:
        return None
    return round(sum(ratings) / len(ratings), 2)

步骤 4: 构建汇总报告

将亚马逊评级和评论计数与 Google 评论信号结合到统一的产品报告中。

Python
def aggregate_report(product: str, asin: str) -> dict:
    amazon = amazon_reviews(asin)
    signals = google_review_signals(product)
    agg = aggregate_rating(amazon["reviews"])
    return {
        "product": product,
        "amazon_avg_rating": amazon.get("rating"),
        "review_count": len(amazon["reviews"]),
        "aggregate_score": agg,
        "google_signals": signals[:3],
    }

Python 示例

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def call(body): 
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY}, json=body)
    r.raise_for_status()
    return r.json()

def aggregate(product: str, asin: str) -> dict:
    amazon_data = call({"platform": "amazon", "query": asin, "marketplace": "US"})
    google_data = call({"query": f"{product} review", "country_code": "us"})
    reviews = amazon_data.get("reviews", [])
    ratings = [r["rating"] for r in reviews if r.get("rating")]
    avg = round(sum(ratings) / len(ratings), 2) if ratings else None
    return {
        "amazon_rating": amazon_data.get("product", {}).get("rating"),
        "computed_avg": avg,
        "review_count": len(reviews),
        "google_snippets": [r.get("snippet") for r in google_data.get("organic_results", [])[:3] if r.get("snippet")]
    }

if __name__ == "__main__":
    import json
    print(json.dumps(aggregate("Sony WH-1000XM5", "B09XS7JWHH"), indent=2))

JavaScript 示例

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function call(body) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify(body)
  });
  return res.json();
}

async function aggregate(product, asin) {
  const [amazon, google] = await Promise.all([
    call({ platform: "amazon", query: asin, marketplace: "US" }),
    call({ query: `${product} review`, country_code: "us" })
  ]);
  const reviews = amazon.reviews || [];
  const ratings = reviews.map(r => r.rating).filter(Boolean);
  const avg = ratings.length ? Math.round(ratings.reduce((a, b) => a + b) / ratings.length * 100) / 100 : null;
  return { amazonRating: amazon.product?.rating, computedAvg: avg, reviewCount: reviews.length };
}

aggregate("Sony WH-1000XM5", "B09XS7JWHH").then(console.log).catch(console.error);

预期输出

JSON
{
  "product": "Sony WH-1000XM5",
  "amazon_avg_rating": "4.8",
  "review_count": 47,
  "aggregate_score": 4.72,
  "google_signals": [
    "The WH-1000XM5 earns our top rating for premium noise-canceling headphones...",
    "5/5 stars. Sony has once again set the bar for consumer audio..."
  ]
}

相关教程

  • 如何通过API获取亚马逊产品评论
  • 如何构建多源产品研究代理

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.8 或更高版本. 请求已安装库. Scavio API 密钥. 基本统计理解. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

Google I/O 2026 AI模式变化后最佳搜索API

Read more
Glossary

搜索 API 供应商格局(2026)

Read more
Best Of

2026 年最佳 SERP API 提供商按价格排名

Read more
Comparison

Brave Search API vs Scavio

Read more
Solution

从 Brave Search API 迁移到 Scavio 获得更好覆盖

Read more
Use Case

n8n 搜索数据增强工作流

Read more

开始构建

使用 Python 构建评论聚合管道,使用 Scavio API 从 Amazon 和 Google 收集产品评论并计算统一的情绪评分。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策