ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建具有价格监控和警报功能的交易查找器
教程

如何构建具有价格监控和警报功能的交易查找器

使用 Python 构建一个交易查找器,用于监控亚马逊和沃尔玛的价格,计算折扣百分比,并在交易超过阈值时发送警报。

获取免费API密钥API文档

交易查找应用程序会监视零售商的产品价格,并在价格大幅下跌时通知用户。关键指标是当前价格与原始价格或历史价格的比较,以折扣百分比表示。来自 Scavio API 的亚马逊和沃尔玛产品响应包括当前价格和原始价格(如果有),从而可以轻松地即时计算折扣。本教程构建了一个交易查找器,用于扫描产品搜索结果、计算折扣并输出高于可配置阈值的交易。

前置条件

  • Python 3.8 或更高版本
  • 请求已安装库
  • Scavio API 密钥
  • 基本的 Python 数学和字符串解析

操作指南

步骤 1: 搜索产品并提取价格

查询亚马逊的产品类别并提取每个结果的当前价格和原始价格。

Python
def extract_prices(product: dict) -> tuple[float | None, float | None]:
    def parse(s):
        return float(s.replace("$", "").replace(",", "")) if s else None
    return parse(product.get("price")), parse(product.get("original_price"))

步骤 2: 计算折扣百分比

计算当前价格和原价的折扣百分比。如果没有原价,则返回 0。

Python
def discount_pct(current: float | None, original: float | None) -> float:
    if not current or not original or original <= current:
        return 0.0
    return round((original - current) / original * 100, 1)

步骤 3: 过滤高于阈值的交易

扫描所有产品并返回折扣百分比等于或高于配置阈值的产品。

Python
def find_deals(products: list[dict], min_discount: float = 20.0) -> list[dict]:
    deals = []
    for p in products:
        current, original = extract_prices(p)
        pct = discount_pct(current, original)
        if pct >= min_discount:
            deals.append({**p, "discount_pct": pct})
    return sorted(deals, key=lambda x: x["discount_pct"], reverse=True)

步骤 4: 打印交易提醒

为每个合格产品输出格式化的交易警报。

Python
def print_deals(deals: list[dict]) -> None:
    if not deals:
        print("No deals found above threshold")
        return
    for d in deals:
        print(f"[{d['discount_pct']}% OFF] {d['title'][:50]}")
        print(f"  Now: {d.get('price')} | Was: {d.get('original_price')}")

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 search_amazon(query: str) -> list[dict]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"platform": "amazon", "query": query, "marketplace": "US"})
    r.raise_for_status()
    return r.json().get("products", [])

def parse_price(s): return float(s.replace("$", "").replace(",", "")) if s else None

def find_deals(products, min_pct=20):
    deals = []
    for p in products:
        curr = parse_price(p.get("price"))
        orig = parse_price(p.get("original_price"))
        if curr and orig and orig > curr:
            pct = round((orig - curr) / orig * 100, 1)
            if pct >= min_pct:
                deals.append({**p, "pct": pct})
    return sorted(deals, key=lambda x: x["pct"], reverse=True)

if __name__ == "__main__":
    products = search_amazon("bluetooth headphones")
    for deal in find_deals(products):
        print(f"[{deal['pct']}% off] {deal.get('title', '')[:50]} — {deal.get('price')}")

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 searchAmazon(query) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ platform: "amazon", query, marketplace: "US" })
  });
  const data = await res.json();
  return data.products || [];
}

function parsePrice(s) { return s ? parseFloat(s.replace(/[$,]/g, "")) : null; }

function findDeals(products, minPct = 20) {
  return products
    .map(p => ({ ...p, pct: (() => {
      const curr = parsePrice(p.price), orig = parsePrice(p.original_price);
      return curr && orig && orig > curr ? Math.round((orig - curr) / orig * 1000) / 10 : 0;
    })() }))
    .filter(p => p.pct >= minPct)
    .sort((a, b) => b.pct - a.pct);
}

searchAmazon("bluetooth headphones").then(products => {
  findDeals(products).forEach(d => console.log(`[${d.pct}% off] ${d.title?.slice(0, 50)} — ${d.price}`));
}).catch(console.error);

预期输出

JSON
[45% off] Beats Studio3 Wireless Headphones
  Now: $109.99 | Was: $199.99

[30% off] Sony WH-CH520 Wireless Headphones
  Now: $34.99 | Was: $49.99

[25% off] JBL Tune 510BT Wireless On-Ear
  Now: $29.99 | Was: $39.99

相关教程

  • 如何监控多个 ASIN 的亚马逊价格
  • 如何为亚马逊和沃尔玛构建价格比较工具

常见问题

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

Python 3.8 或更高版本. 请求已安装库. Scavio API 密钥. 基本的 Python 数学和字符串解析. 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 构建一个交易查找器,用于监控亚马逊和沃尔玛的价格,计算折扣百分比,并在交易超过阈值时发送警报。

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

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

产品

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

开发者

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

替代方案

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

工具

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

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策