El problema
Los flujos de trabajo de n8n que dependen de nodos de raspado web (solicitud HTTP + extracción de HTML) se interrumpen cuando los sitios web de destino cambian su diseño, agregan detección de bots o limitan la velocidad de la IP del servidor n8n. Un flujo de trabajo que funcionó ayer devuelve resultados vacíos hoy, y el usuario n8n no lo sabe hasta que los nodos posteriores fallan o producen resultados basura. Depurar errores de análisis de HTML en el editor visual de n8n es complicado.
La solucion de Scavio
Reemplace la cadena de solicitud HTTP + extracción HTML de n8n con un único nodo de solicitud HTTP que llame a la API de Scavio. La respuesta es JSON estructurado que se asigna directamente al modelo de datos de n8n. Sin análisis de HTML, sin selectores de CSS que mantener, sin detección de bots que eludir. Si Scavio devuelve datos, ya están analizados y normalizados. El manejo de errores integrado de n8n funciona limpiamente porque las fallas son códigos de estado HTTP, no resultados silenciosos y vacíos.
Antes
Antes de Scavio, el flujo de trabajo n8n utilizaba 4 nodos (Solicitud HTTP, Extracción HTML, Conjunto, IF) para extraer y analizar una página de resultados de búsqueda. Los cambios de diseño interrumpieron la extracción mensual y el equipo pasó horas depurando selectores de CSS en n8n.
Después
Después de cambiar a Scavio, el flujo de trabajo utiliza 1 nodo de solicitud HTTP que devuelve JSON estructurado. Sin selectores de CSS, sin análisis de HTML. El flujo de trabajo no se ha interrumpido debido a problemas con el origen de datos desde la migración.
Para quien es
Usuarios de n8n que crean flujos de trabajo de automatización que dependen de datos web. Constructores sin código y con poco código que necesitan datos estructurados confiables sin mantener la lógica de raspado.
Beneficios clave
- Reemplace la cadena de raspado de 4 nodos con 1 nodo de solicitud HTTP
- JSON estructurado elimina el análisis de HTML y el mantenimiento del selector de CSS
- Limpiar códigos de error HTTP en lugar de resultados silenciosos y vacíos
- Funciona con el reintento integrado y el manejo de errores de n8n
- La misma API cubre Google, Amazon, Reddit y 3 plataformas más
Ejemplo en Python
import requests
API_KEY = "your_scavio_api_key"
def n8n_compatible_search(query: str, platform: str = "google") -> dict:
"""Returns structured data ready for n8n downstream nodes."""
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()
data = res.json()
return {
"results": [{"title": r.get("title", ""), "link": r.get("link", ""), "snippet": r.get("snippet", "")} for r in data.get("organic", [])[:5]],
"total": len(data.get("organic", [])),
"platform": platform,
}
result = n8n_compatible_search("best project management tools 2026")
print(f"Found {result["total"]} results on {result["platform"]}")
for r in result["results"]:
print(f" {r["title"]}: {r["link"]}")Ejemplo en JavaScript
const API_KEY = "your_scavio_api_key";
async function n8nSearch(query, platform = "google") {
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}`);
const data = await res.json();
return {
results: (data.organic ?? []).slice(0, 5).map((r) => ({ title: r.title ?? "", link: r.link ?? "", snippet: r.snippet ?? "" })),
total: (data.organic ?? []).length,
platform,
};
}
const result = await n8nSearch("best project management tools 2026");
console.log(`Found ${result.total} results on ${result.platform}`);
result.results.forEach((r) => console.log(` ${r.title}: ${r.link}`));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