Realice un seguimiento del ciclo de vida de un producto en los mercados consultando Amazon, Walmart y Google a través de una única API y registrando el precio, el recuento de reseñas, la calificación y la disponibilidad a intervalos regulares. Esto revela diferencias en el momento del lanzamiento entre los mercados, patrones de erosión de precios y curvas de velocidad de revisión que informan las decisiones de inventario y marketing. La API multiplataforma de Scavio hace esto posible con una clave API en lugar de mantener raspadores separados para cada mercado. Este tutorial crea un rastreador del ciclo de vida que sondea múltiples plataformas y genera un informe de cronograma.
Requisitos previos
- Python 3.8+ instalado
- solicita biblioteca instalada
- Una clave API de Scavio de scavio.dev
- Un nombre de producto o ASIN para rastrear
Guia paso a paso
Paso 1: Definir el producto y las plataformas
Configure el producto para realizar un seguimiento y los mercados para consultar. Utilice el mismo término de búsqueda en todas las plataformas para mantener la coherencia.
import os, requests, json, datetime
API_KEY = os.environ['SCAVIO_API_KEY']
PRODUCT = 'Sony WH-1000XM6'
PLATFORMS = ['amazon', 'walmart', 'google']
HISTORY_FILE = 'product_lifecycle.json'Paso 2: Consultar cada mercado
Busque el producto en cada plataforma y extraiga el precio, la calificación y la disponibilidad del listado principal.
def query_marketplace(product: str, platform: str) -> dict:
resp = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'platform': platform, 'query': product}, timeout=15)
resp.raise_for_status()
results = resp.json().get('organic_results', [])
if not results:
return {'platform': platform, 'found': False}
top = results[0]
return {
'platform': platform,
'found': True,
'title': top.get('title', ''),
'price': top.get('price', ''),
'rating': top.get('rating', ''),
'reviews': top.get('reviews', ''),
'url': top.get('link', ''),
}Paso 3: Grabar instantáneas diarias
Agregue los datos actuales de todas las plataformas a un archivo de historial JSON que se acumula con el tiempo.
def record_snapshot(product: str) -> dict:
snapshot = {
'date': datetime.date.today().isoformat(),
'product': product,
'platforms': [query_marketplace(product, p) for p in PLATFORMS],
}
history = []
try:
with open(HISTORY_FILE) as f:
history = json.load(f)
except FileNotFoundError:
pass
history.append(snapshot)
with open(HISTORY_FILE, 'w') as f:
json.dump(history, f, indent=2)
return snapshot
snap = record_snapshot(PRODUCT)
for p in snap['platforms']:
status = f"${p.get('price', 'N/A')} - {p.get('rating', 'N/A')} stars" if p['found'] else 'Not found'
print(f"{p['platform']}: {status}")Paso 4: Generar la línea de tiempo del ciclo de vida
Lea el archivo histórico e imprima una cronología que muestre cómo evolucionaron los precios y las reseñas en los mercados.
def print_timeline(history_file: str = HISTORY_FILE):
with open(history_file) as f:
history = json.load(f)
print(f'Lifecycle timeline for {history[0]["product"]} ({len(history)} snapshots)\n')
for entry in history:
print(f'--- {entry["date"]} ---')
for p in entry['platforms']:
if p['found']:
print(f" {p['platform']:<10} price={p.get('price', 'N/A'):<10} rating={p.get('rating', 'N/A'):<6} reviews={p.get('reviews', 'N/A')}")
else:
print(f" {p['platform']:<10} NOT LISTED")
print()
print_timeline()Ejemplo en Python
import requests, os, json
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def check_product(product, platform):
data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': platform, 'query': product}).json()
top = (data.get('organic_results', []) or [{}])[0]
return {'platform': platform, 'price': top.get('price', ''), 'rating': top.get('rating', '')}
for p in ['amazon', 'walmart', 'google']:
print(check_product('Sony WH-1000XM6', p))Ejemplo en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function checkProduct(product, platform) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST', headers: H, body: JSON.stringify({platform, query: product})
});
const top = ((await r.json()).organic_results || [])[0] || {};
return {platform, price: top.price || '', rating: top.rating || ''};
}
for (const p of ['amazon', 'walmart', 'google']) {
checkProduct('Sony WH-1000XM6', p).then(console.log);
}Salida esperada
A JSON timeline showing daily price, rating, and review snapshots for a product across Amazon, Walmart, and Google, revealing lifecycle patterns.