ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo recuperar datos de búsqueda web sin administrar servidores proxy
Tutorial

Cómo recuperar datos de búsqueda web sin administrar servidores proxy

Descubra por qué la API administrada por Scavio elimina la administración de proxy, la resolución de CAPTCHA y la rotación de IP para los datos de búsqueda web. POST HTTP simple, salida JSON estructurada.

Obtener clave API gratisDocumentacion API

Crear un raspador web directo requiere administrar un grupo de proxy rotativo, resolver CAPTCHA, manejar la representación de JavaScript y analizar HTML sin formato, todo lo cual requiere un esfuerzo de ingeniería significativo y un mantenimiento continuo. La API de Scavio es un servicio de datos de búsqueda administrado que maneja toda esta infraestructura del lado del servidor. Realiza una única POST HTTP autenticada y recibe JSON estructurado. Este tutorial compara el enfoque tradicional basado en proxy con el enfoque Scavio y muestra cómo migrar desde un raspador a la API.

Requisitos previos

  • Python 3.8 o superior
  • solicita biblioteca instalada
  • Una clave API de Scavio
  • Comprensión básica de las solicitudes HTTP

Guia paso a paso

Paso 1: El enfoque tradicional de scraping (antes)

Un raspador típico requiere configuración de proxy, rotación de agente de usuario y análisis de HTML, todo lo cual es propenso a fallar cuando los sitios cambian.

Python
# Traditional approach — fragile and requires proxy infrastructure
import requests
from bs4 import BeautifulSoup

proxies = {"http": "http://user:pass@proxy:8080", "https": "http://user:pass@proxy:8080"}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..."}
response = requests.get("https://www.google.com/search?q=python+tutorial",
                        proxies=proxies, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
# Fragile: class names change without notice
results = soup.find_all("div", class_="tF2Cxc")

Paso 2: El enfoque Scavio (después)

Reemplace el raspador con una única llamada API. Sin servidores proxy, sin análisis de HTML, sin mantenimiento.

Python
# Scavio approach — stable, structured, no infrastructure
import requests

response = requests.post(
    "https://api.scavio.dev/api/v1/search",
    headers={"x-api-key": "your_scavio_api_key"},
    json={"query": "python tutorial", "country_code": "us"}
)
results = response.json()["organic_results"]

Paso 3: Manejar reintentos con retroceso exponencial

La API de Scavio es confiable, pero agrega un contenedor de reintento simple para errores de red.

Python
import time

def search_with_retry(query: str, max_retries: int = 3) -> dict:
    for attempt in range(max_retries):
        try:
            r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                              json={"query": query, "country_code": "us"}, timeout=30)
            r.raise_for_status()
            return r.json()
        except requests.RequestException as e:
            if attempt == max_retries - 1:
                raise
            time.sleep(2 ** attempt)
    return {}

Paso 4: Validar el esquema de respuesta

Agregue una verificación de esquema simple para garantizar que la respuesta contenga los campos esperados antes de procesarla.

Python
def validate_response(data: dict) -> bool:
    required = ["organic_results"]
    return all(k in data for k in required)

data = search_with_retry("python tutorial")
if validate_response(data):
    for r in data["organic_results"][:5]:
        print(r["title"], r["link"])

Ejemplo en Python

Python
import os
import time
import requests

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

def search(query: str, retries: int = 3) -> dict:
    for i in range(retries):
        try:
            r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                              json={"query": query, "country_code": "us"}, timeout=30)
            r.raise_for_status()
            return r.json()
        except requests.RequestException:
            if i < retries - 1:
                time.sleep(2 ** i)
            else:
                raise
    return {}

if __name__ == "__main__":
    # No proxies, no HTML parsing, no CAPTCHA solving
    data = search("python tutorial")
    for r in data.get("organic_results", [])[:5]:
        print(f"{r['title']}\n{r['link']}\n")

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 search(query, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      const res = await fetch(ENDPOINT, {
        method: "POST",
        headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
        body: JSON.stringify({ query, country_code: "us" })
      });
      if (!res.ok) throw new Error(`HTTP ${res.status}`);
      return res.json();
    } catch (e) {
      if (i === retries - 1) throw e;
      await new Promise(r => setTimeout(r, Math.pow(2, i) * 1000));
    }
  }
}

// No proxies, no HTML parsing
search("python tutorial").then(data => {
  (data.organic_results || []).slice(0, 5).forEach(r => console.log(`${r.title}\n${r.link}\n`));
}).catch(console.error);

Salida esperada

JSON
Traditional approach: 47 lines, 3 dependencies, breaks monthly

Scavio approach: 8 lines, 1 dependency, stable

Sample output:
{
  "organic_results": [
    { "position": 1, "title": "Python Tutorial — W3Schools", "link": "https://w3schools.com/python/" },
    { "position": 2, "title": "The Python Tutorial — Python Docs", "link": "https://docs.python.org/tutorial/" }
  ]
}

Tutoriales relacionados

  • Cómo obtener resultados de búsqueda de Google en Python
  • Cómo agregar búsqueda en tiempo real a LangChain con langchain-scavio

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. Comprensión básica de las solicitudes HTTP. 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 herramientas de raspado web de IA en 2026

Read more
Best Of

Las mejores alternativas de web scraping por menos de $ 50 al mes en 2026

Read more
Comparison

TikTok Proxy Scraping vs TikTok Third-Party API (Scavio, TikAPI)

Read more
Comparison

Search APIs (Scavio, Tavily, SerpAPI) vs Headless Browser (Playwright, Puppeteer, Browserbase)

Read more
Use Case

Reemplace los servidores proxy de scraping con la API de búsqueda

Read more
Use Case

Acceso web de IA de código abierto 2026

Read more

Empieza a construir

Descubra por qué la API administrada por Scavio elimina la administración de proxy, la resolución de CAPTCHA y la rotación de IP para los datos de búsqueda web. POST HTTP simple, salida JSON estructurada.

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