ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo extraer datos estructurados de Google Shopping a través de API
Tutorial

Cómo extraer datos estructurados de Google Shopping a través de API

Obtenga datos estructurados de productos de Google Shopping, incluidos precios, comerciantes, calificaciones e imágenes, utilizando la API de Scavio. Cree feeds de inteligencia de precios en Python.

Obtener clave API gratisDocumentacion API

Google Shopping agrega listados de productos de miles de comerciantes en un formato de comparación estructurado. Extraer estos datos a escala es valioso para las plataformas de inteligencia de precios, el seguimiento competitivo y el enriquecimiento del catálogo. La API de Scavio devuelve resultados de Google Shopping en el campo shopping_results con título del producto, precio, nombre del comerciante, calificación, recuento de reseñas, URL de la imagen y enlace del producto. Este tutorial crea un canal de extracción de datos estructurado que consulta Google Shopping en busca de categorías de productos y normaliza la salida para análisis.

Requisitos previos

  • Python 3.8 o superior
  • solicita biblioteca instalada
  • Una clave API de Scavio
  • Categorías de productos o productos específicos a monitorear

Guia paso a paso

Paso 1: Obtener resultados de Google Shopping

Consulta el punto final de Scavio para obtener un producto. Los resultados de compras aparecen en la matriz shopping_results de la respuesta.

Python
def get_shopping_data(product: str) -> list[dict]:
    r = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"query": product, "country_code": "us"}
    )
    r.raise_for_status()
    return r.json().get("shopping_results", [])

Paso 2: Normalizar los datos de compras

Transforme los resultados de compras sin procesar en un esquema coherente con valores de precios analizados para su análisis.

Python
def normalize_item(item: dict) -> dict:
    price_str = item.get("price", "")
    price = float(price_str.replace("$", "").replace(",", "")) if price_str else None
    return {
        "title": item.get("title", ""),
        "price": price,
        "price_raw": price_str,
        "merchant": item.get("source", ""),
        "rating": float(item.get("rating", 0) or 0),
        "reviews": int(item.get("reviews", 0) or 0),
        "link": item.get("link", ""),
        "thumbnail": item.get("thumbnail", ""),
    }

Paso 3: Calcular estadísticas de precios

Calcule los precios mínimo, máximo, mediano y promedio de todos los comerciantes para un producto.

Python
import statistics

def price_stats(items: list[dict]) -> dict:
    prices = [i["price"] for i in items if i["price"] is not None]
    if not prices:
        return {"min": None, "max": None, "median": None, "mean": None}
    return {
        "min": min(prices),
        "max": max(prices),
        "median": statistics.median(prices),
        "mean": round(statistics.mean(prices), 2),
    }

Paso 4: Exportar feed estructurado

Escriba los datos de compras normalizados en un archivo JSON adecuado para ser ingerido por herramientas de análisis o bases de datos.

Python
import json

def export_feed(product: str, items: list[dict]) -> None:
    feed = {
        "product": product,
        "item_count": len(items),
        "stats": price_stats(items),
        "items": items,
    }
    with open(f"shopping_{product.replace(' ', '_')}.json", "w") as f:
        json.dump(feed, f, indent=2)
    print(f"Exported {len(items)} items for {product}")

Ejemplo en Python

Python
import os
import json
import statistics
import requests

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

def get_shopping(product: str) -> list[dict]:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": product, "country_code": "us"})
    r.raise_for_status()
    return r.json().get("shopping_results", [])

def normalize(item: dict) -> dict:
    p = item.get("price", "")
    return {
        "title": item.get("title"), "price": float(p.replace("$", "").replace(",", "")) if p else None,
        "merchant": item.get("source"), "rating": item.get("rating"), "reviews": item.get("reviews"),
    }

if __name__ == "__main__":
    items = [normalize(i) for i in get_shopping("mechanical keyboard")]
    prices = [i["price"] for i in items if i["price"]]
    print(f"Found {len(items)} listings")
    if prices:
        print(f"Price range: ${min(prices):.2f} - ${max(prices):.2f}")
        print(f"Median: ${statistics.median(prices):.2f}")
    for i in sorted(items, key=lambda x: x["price"] or float("inf"))[:5]:
        print(f"  {i['merchant']}: ${i['price']:.2f} - {i['title'][:50]}")

Ejemplo en 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 getShopping(product) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query: product, country_code: "us" })
  });
  const data = await res.json();
  return (data.shopping_results || []).map(i => ({
    title: i.title, price: i.price ? parseFloat(i.price.replace(/[$,]/g, "")) : null,
    merchant: i.source, rating: i.rating
  }));
}

async function main() {
  const items = await getShopping("mechanical keyboard");
  const prices = items.map(i => i.price).filter(Boolean);
  console.log(`${items.length} listings, $${Math.min(...prices)} - $${Math.max(...prices)}`);
  items.sort((a, b) => (a.price || Infinity) - (b.price || Infinity)).slice(0, 5)
    .forEach(i => console.log(`  ${i.merchant}: $${i.price} - ${i.title?.slice(0, 50)}`));
}
main().catch(console.error);

Salida esperada

JSON
Found 15 listings
Price range: $39.99 - $299.99
Median: $89.99
  Amazon: $39.99 - Redragon K552 Mechanical Gaming Keyboard
  Walmart: $49.99 - RK ROYAL KLUDGE RK61 60% Mechanical
  Best Buy: $74.99 - HyperX Alloy Origins Core Mechanical

Tutoriales relacionados

  • Cómo obtener resultados de Google Shopping a través de API
  • Cómo crear una herramienta de comparación de precios para Amazon y Walmart

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Python 3.8 o superior. solicita biblioteca instalada. Una clave API de Scavio. Categorías de productos o productos específicos a monitorear. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Best Of

Las mejores API de datos comerciales de Google Maps (mayo de 2026)

Read more
Best Of

Las mejores API de datos de Google Shopping en 2026

Read more
Glossary

Búsqueda estructurada de Google Shopping

Read more
Glossary

Costo de la API de Google Maps Places

Read more
Comparison

Scavio vs Oxylabs

Read more
Comparison

Google CSE (Paid Tier) vs Third-Party SERP API (Scavio, SerpApi, Serper)

Read more

Empieza a construir

Obtenga datos estructurados de productos de Google Shopping, incluidos precios, comerciantes, calificaciones e imágenes, utilizando la API de Scavio. Cree feeds de inteligencia de precios en Python.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad