Resumen
Este flujo de trabajo refreshes producto prices y posiciones en buscadores diario usando Scavio structured llamadas un API instead of browser-based scrapers ese obtener blocked by CAPTCHAs. It procesa un lista of productos a traves de Google y Amazon, actualiza el local price base de datos, y never encounters CAPTCHA challenges porque Scavio handles datos acceso at el infrastructure level. Teams ese migrated de Selenium o Playwright scrapers usar este to eliminate el maintenance burden of CAPTCHA-solving servicios.
Desencadenador
Cron programar (diario at 6:00 AM UTC)
Programación
Ejecuta diario at 6:00 AM UTC
Pasos del flujo de trabajo
Cargar producto refresh lista
Leer el lista of productos y their associated consultas de busqueda de el local base de datos.
Consulta Google for posicionamientos
Search Scavio Google for cada producto to capture actual posiciones organicas y fragmentos destacados.
Consulta Amazon for prices
Search Scavio Amazon for cada producto to obtener actual precios, ratings, y disponibilidad.
Actualizar local base de datos
Escribir el refreshed datos to el local base de datos con marcas de tiempo for freshness seguimiento.
Log refresh resultados
Salida un resumen of productos refreshed, prices changed, y cualquier consultas ese returned no resultados.
Implementacion en Python
import requests
import json
from pathlib import Path
from datetime import datetime
API_KEY = "your_scavio_api_key"
PRODUCTS = [
{"slug": "wireless-earbuds", "google_query": "best wireless earbuds 2026", "amazon_query": "wireless earbuds"},
{"slug": "standing-desk", "google_query": "best standing desk 2026", "amazon_query": "standing desk adjustable"},
{"slug": "mechanical-keyboard", "google_query": "best mechanical keyboard 2026", "amazon_query": "mechanical keyboard"},
]
def search(query: str, platform: str) -> dict:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": platform, "query": query},
timeout=15,
)
res.raise_for_status()
return res.json()
def run():
date = datetime.utcnow().strftime("%Y-%m-%d")
refreshed = []
for product in PRODUCTS:
google_data = search(product["google_query"], "google")
amazon_data = search(product["amazon_query"], "amazon")
google_top = google_data.get("organic", [])[:5]
amazon_top = amazon_data.get("organic", [])[:5]
amazon_prices = [r.get("price") for r in amazon_top if r.get("price")]
refreshed.append({
"slug": product["slug"],
"date": date,
"google_results": len(google_top),
"google_top_title": google_top[0].get("title", "") if google_top else "",
"amazon_results": len(amazon_top),
"amazon_lowest_price": min(amazon_prices) if amazon_prices else None,
"amazon_highest_price": max(amazon_prices) if amazon_prices else None,
})
output = {"date": date, "products_refreshed": len(PRODUCTS), "data": refreshed}
Path(f"data_refresh_{date}.json").write_text(json.dumps(output, indent=2))
print(f"Data refresh {date}: {len(PRODUCTS)} products updated (zero CAPTCHAs)")
for r in refreshed:
price_str = "$" + f"{r['amazon_lowest_price']:.2f}" if r["amazon_lowest_price"] else "no price"
print(f" {r['slug']}: {r['google_results']} Google, {r['amazon_results']} Amazon, {price_str}")
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
const PRODUCTS = [
{ slug: "wireless-earbuds", google: "best wireless earbuds 2026", amazon: "wireless earbuds" },
{ slug: "standing-desk", google: "best standing desk 2026", amazon: "standing desk adjustable" },
];
async function search(query, platform) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": API_KEY, "content-type": "application/json" },
body: JSON.stringify({ platform, query }),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
return res.json();
}
for (const product of PRODUCTS) {
const google = await search(product.google, "google");
const amazon = await search(product.amazon, "amazon");
const prices = (amazon.organic ?? []).map((r) => r.price).filter(Boolean);
const lowest = prices.length ? Math.min(...prices) : null;
console.log(`${product.slug}: ${(google.organic ?? []).length} Google, ${(amazon.organic ?? []).length} Amazon, ${lowest ? "$" + lowest : "no price"}`);
}Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA
Amazon
Búsqueda de productos con precios, calificaciones y reseñas