Saltar al contenido principal
Firecrawl ofrece distintos tipos de proxy para ayudarte a hacer scraping de sitios web con diferentes niveles de complejidad. El tipo de proxy se puede especificar mediante el parámetro proxy.

Tipos de proxy

Firecrawl admite tres tipos de proxies:
  • basic: Proxies para hacer scraping de la mayoría de los sitios web. Rápidos y que suelen funcionar.
  • enhanced: Proxies avanzados para hacer scraping de sitios web complejos manteniendo la privacidad. Más lentos, pero más fiables en ciertos sitios.
  • auto: Firecrawl reintentará automáticamente el scraping con proxies enhanced si el proxy basic falla. Si el reintento con enhanced tiene éxito, se cobrarán 5 créditos por el scraping. Si el primer intento con basic tiene éxito, solo se cobrará el coste estándar.
Si no especificas un proxy, Firecrawl usará auto de forma predeterminada.

Uso del modo mejorado

Al extraer datos de sitios web complejos, puedes usar el modo mejorado para mejorar tu tasa de éxito mientras mantienes la privacidad.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key='fc-YOUR-API-KEY')

# Elige la estrategia de proxy: 'basic' | 'enhanced' | 'auto'
doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

print(doc.warning or 'ok')
Nota: Las solicitudes con proxy mejorado cuestan 5 créditos por solicitud cuando se usan.

Usar Enhanced como mecanismo de reintento

Un patrón común es intentar primero el scraping con la configuración de proxy predeterminada y luego reintentar con el modo enhanced si encuentras códigos de estado de error específicos (401, 403 o 500) en el campo metadata.statusCode de la respuesta. Estos códigos de estado pueden indicar que el sitio web está bloqueando tu solicitud.
# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="YOUR_API_KEY")

# First try with basic proxy
try:
    content = firecrawl.scrape("https://example.com")
    
    # Check if we got an error status code
    status_code = content.get("metadata", {}).get("statusCode")
    if status_code in [401, 403, 500]:
        print(f"Se obtuvo el código de estado {status_code}, reintentando con proxy enhanced")
        # Retry with enhanced proxy
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
    
    print(content["markdown"])
except Exception as e:
    print(f"Error: {e}")
    # Retry with enhanced proxy on exception
    try:
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
        print(content["markdown"])
    except Exception as e:
        print(f"Enhanced proxy also failed: {e}")
Este enfoque te permite optimizar el uso de tus créditos usando el modo enhanced solo cuando sea necesario.