ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo agregar un respaldo de SearXNG a su canal de búsqueda
Tutorial

Cómo agregar un respaldo de SearXNG a su canal de búsqueda

Agregue un respaldo gratuito de SearXNG a su proceso de búsqueda con conmutación por error automática a Scavio cuando se necesiten datos estructurados. Código Python incluido.

Obtener clave API gratisDocumentacion API

SearXNG le ofrece resultados de búsqueda autohospedados gratuitos, pero devuelve HTML no estructurado sin JSON coherente. Un enfoque híbrido utiliza SearXNG para consultas de baja prioridad y conmuta por error a Scavio a $0,005/solicitud cuando necesita datos estructurados, funciones SERP o tiempo de actividad garantizado. Este tutorial crea una canalización alternativa que prueba SearXNG primero y promueve a Scavio cuando SearXNG arroja resultados incompletos.

Requisitos previos

  • Python 3.8+
  • solicita biblioteca
  • Una clave API de Scavio de scavio.dev
  • Instancia de SearXNG (local o remota) con formato JSON habilitado

Guia paso a paso

Paso 1: Configurar clientes SearXNG y Scavio

Configure ambos motores de búsqueda con una interfaz unificada.

Python
import os, requests, time

SCAVIO_KEY = os.environ['SCAVIO_API_KEY']
SCAVIO_H = {'x-api-key': SCAVIO_KEY, 'Content-Type': 'application/json'}
SEARXNG_URL = os.environ.get('SEARXNG_URL', 'http://localhost:8080')

def search_searxng(query):
    try:
        r = requests.get(f'{SEARXNG_URL}/search',
            params={'q': query, 'format': 'json', 'engines': 'google'},
            timeout=5)
        r.raise_for_status()
        data = r.json()
        return [{'title': r['title'], 'link': r['url'], 'snippet': r.get('content', '')}
                for r in data.get('results', [])[:10]]
    except Exception as e:
        print(f'SearXNG failed: {e}')
        return None

def search_scavio(query):
    r = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SCAVIO_H, json={'query': query, 'country_code': 'us'})
    return r.json()

print('Clients configured.')

Paso 2: Construya el enrutador alternativo

Pruebe SearXNG primero. Si faltan resultados o están incompletos, ascienda a Scavio.

Python
def search_with_fallback(query, need_structured=False, min_results=5):
    cost = 0.0
    source = 'searxng'
    if not need_structured:
        results = search_searxng(query)
        if results and len(results) >= min_results:
            return {'results': results, 'source': source, 'cost': cost}
        print(f'SearXNG returned {len(results) if results else 0} results, falling back to Scavio')

    source = 'scavio'
    cost = 0.005
    data = search_scavio(query)
    return {
        'results': data.get('organic_results', []),
        'source': source,
        'cost': cost,
        'serp_features': {
            'ai_overview': bool(data.get('ai_overview')),
            'answer_box': bool(data.get('answer_box')),
            'paa': len(data.get('related_questions', []))
        }
    }

r = search_with_fallback('best python web framework 2026')
print(f'Source: {r["source"]}, Results: {len(r["results"])}, Cost: ${r["cost"]:.3f}')

Paso 3: Agregar controles de estado y métricas

Realice un seguimiento de la disponibilidad de SearXNG y la tasa de reserva para estimar los costos.

Python
from collections import Counter

stats = Counter()

def tracked_search(query, **kwargs):
    r = search_with_fallback(query, **kwargs)
    stats[r['source']] += 1
    stats['total_cost'] += r['cost']
    return r

queries = ['python web framework', 'best serp api', 'tiktok analytics tool',
           'react vs vue 2026', 'llm agent search']
for q in queries:
    r = tracked_search(q)
    print(f'  {q[:35]:35} -> {r["source"]:8} ({len(r["results"])} results)')

print(f'\nSearXNG hits: {stats["searxng"]}, Scavio fallbacks: {stats["scavio"]}')
print(f'Total cost: ${stats["total_cost"]:.3f}')
print(f'Savings vs all-Scavio: ${len(queries) * 0.005 - stats["total_cost"]:.3f}')

Paso 4: Forzar Scavio para consultas estructuradas

Algunas consultas siempre necesitan datos SERP estructurados. Enrútelos directamente.

Python
STRUCTURED_PATTERNS = ['price', 'cost', 'pricing', 'buy', 'vs ', 'compare']

def smart_search(query):
    need_structured = any(p in query.lower() for p in STRUCTURED_PATTERNS)
    r = tracked_search(query, need_structured=need_structured)
    if need_structured:
        print(f'  [STRUCTURED] {query[:40]} -> Scavio (SERP features: {r.get("serp_features", {})})')
    else:
        print(f'  [BASIC] {query[:40]} -> {r["source"]}')
    return r

smart_search('python tutorial')
smart_search('scavio vs serpapi pricing')
smart_search('buy noise canceling headphones')
print(f'Total cost: ${stats["total_cost"]:.3f}')

Ejemplo en Python

Python
import os, requests

SCAVIO_H = {'x-api-key': os.environ['SCAVIO_API_KEY'], 'Content-Type': 'application/json'}
SEARXNG = os.environ.get('SEARXNG_URL', 'http://localhost:8080')

def search(query, force_scavio=False):
    if not force_scavio:
        try:
            r = requests.get(f'{SEARXNG}/search', params={'q': query, 'format': 'json'}, timeout=5)
            results = r.json().get('results', [])[:10]
            if len(results) >= 5:
                print(f'{query}: {len(results)} results via SearXNG (free)')
                return results
        except: pass
    data = requests.post('https://api.scavio.dev/api/v1/search',
        headers=SCAVIO_H, json={'query': query, 'country_code': 'us'}).json()
    print(f'{query}: {len(data.get("organic_results", []))} results via Scavio ($0.005)')
    return data.get('organic_results', [])

search('python api tutorial')
search('serp api pricing comparison', force_scavio=True)

Ejemplo en JavaScript

JavaScript
const SH = { 'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json' };
const SEARXNG = process.env.SEARXNG_URL || 'http://localhost:8080';

async function search(query, forceScavio = false) {
  if (!forceScavio) {
    try {
      const r = await fetch(`${SEARXNG}/search?q=${encodeURIComponent(query)}&format=json`,
        { signal: AbortSignal.timeout(5000) });
      const data = await r.json();
      if (data.results?.length >= 5) {
        console.log(`${query}: ${data.results.length} via SearXNG (free)`);
        return data.results.slice(0, 10);
      }
    } catch {}
  }
  const data = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST', headers: SH,
    body: JSON.stringify({ query, country_code: 'us' })
  }).then(r => r.json());
  console.log(`${query}: ${(data.organic_results||[]).length} via Scavio ($0.005)`);
  return data.organic_results || [];
}
search('python tutorial').then(() => search('serp api pricing', true)).catch(console.error);

Salida esperada

JSON
  python web framework               -> searxng  (8 results)
  best serp api                       -> scavio   (10 results)
  tiktok analytics tool               -> searxng  (7 results)
  react vs vue 2026                   -> searxng  (9 results)
  llm agent search                    -> scavio   (10 results)

SearXNG hits: 3, Scavio fallbacks: 2
Total cost: $0.010
Savings vs all-Scavio: $0.015

Tutoriales relacionados

  • Cómo comparar modelos de precios de API SERP mediante programación
  • Cómo optimizar el presupuesto de búsqueda de su agente de IA
  • Cómo crear un panel de SEO personalizado con una API de búsqueda

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+. solicita biblioteca. Una clave API de Scavio de scavio.dev. Instancia de SearXNG (local o remota) con formato JSON habilitado. 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 búsqueda después de los cambios en el modo AI de Google I/O 2026

Read more
Glossary

Panorama de proveedores de API de búsqueda (2026)

Read more
Best Of

Los mejores proveedores de API SERP clasificados por precio en 2026

Read more
Comparison

Brave Search API vs Scavio

Read more
Solution

Migrar de Brave Search API a Scavio para Mayor Cobertura

Read more
Use Case

Flujo de trabajo de enriquecimiento de búsqueda n8n

Read more

Empieza a construir

Agregue un respaldo gratuito de SearXNG a su proceso de búsqueda con conmutación por error automática a Scavio cuando se necesiten datos estructurados. Código Python incluido.

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