Walmart es la segunda plataforma de comercio electrónico más grande de Estados Unidos, lo que la hace esencial para herramientas de comparación de precios, análisis minoristas e inteligencia competitiva. El raspado directo de Walmart se bloquea agresivamente. La API de Scavio proporciona un punto final de búsqueda estable de Walmart que devuelve listados de productos que incluyen título, precio, calificación, recuento de reseñas, información del vendedor y disponibilidad. Este tutorial muestra cómo buscar productos, extraer datos de precios y crear una lista de productos simple.
Requisitos previos
- Python 3.8 o superior
- solicita biblioteca instalada
- Una clave API de Scavio
- Familiaridad con las llamadas API REST y JSON
Guia paso a paso
Paso 1: Enviar una búsqueda de productos Walmart
PUBLICAR en el punto final de Scavio con la plataforma Walmart y su consulta de búsqueda. La respuesta contiene una lista de resultados de productos.
def search_walmart(query: str) -> dict:
response = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "walmart", "query": query}
)
response.raise_for_status()
return response.json()Paso 2: Extraer listados de productos
La clave de productos contiene una lista de objetos de productos. Cada uno tiene título, precio, calificación, reseñas y disponibilidad.
data = search_walmart("wireless headphones")
products = data.get("products", [])
print(f"Found {len(products)} products")Paso 3: Ordenar por precio
Analice el campo de precios y clasifique los productos para encontrar las opciones más baratas. Los precios pueden incluir símbolos de moneda, así que elimínelos antes de realizar la conversión.
def parse_price(p: str) -> float:
return float(p.replace("$", "").replace(",", "")) if p else float("inf")
sorted_products = sorted(products, key=lambda x: parse_price(x.get("price", "")))
for p in sorted_products[:5]:
print(f"{p['title'][:50]} — {p['price']}")Paso 4: Guardar resultados en JSON
Conserve los datos del producto en un archivo JSON para su procesamiento o comparación posteriores.
import json
with open("walmart_results.json", "w") as f:
json.dump(products, f, indent=2)
print("Saved to walmart_results.json")Ejemplo en Python
import os
import json
import requests
API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"
def search_walmart(query: str) -> list[dict]:
r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
json={"platform": "walmart", "query": query})
r.raise_for_status()
return r.json().get("products", [])
def cheapest(products: list[dict], n: int = 5) -> list[dict]:
def price(p):
s = p.get("price", "")
return float(s.replace("$", "").replace(",", "")) if s else float("inf")
return sorted(products, key=price)[:n]
if __name__ == "__main__":
products = search_walmart("wireless headphones")
for p in cheapest(products):
print(f"{p['title'][:50]} — {p.get('price', 'N/A')} ({p.get('rating', 'N/A')} stars)")Ejemplo en JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";
async function searchWalmart(query) {
const res = await fetch(ENDPOINT, {
method: "POST",
headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ platform: "walmart", query })
});
const data = await res.json();
return data.products || [];
}
function parsePrice(str) {
return str ? parseFloat(str.replace(/[$,]/g, "")) : Infinity;
}
async function main() {
const products = await searchWalmart("wireless headphones");
const sorted = products.sort((a, b) => parsePrice(a.price) - parsePrice(b.price));
sorted.slice(0, 5).forEach(p => console.log(`${p.title.slice(0, 50)} — ${p.price}`));
}
main().catch(console.error);Salida esperada
{
"products": [
{
"title": "Sony WH-1000XM5 Wireless Headphones",
"price": "$279.00",
"rating": "4.8",
"reviews_count": 12847,
"availability": "In Stock",
"seller": "Walmart.com",
"url": "https://walmart.com/ip/sony-wh1000xm5/..."
}
]
}