Passer au contenu principal
Firecrawl propose différents types de proxy pour vous aider à effectuer du scraping sur des sites web de complexité variable. Le type de proxy peut être spécifié à l’aide du paramètre proxy.

Types de proxy

Firecrawl prend en charge trois types de proxy :
  • basic : Proxies pour le scraping de la plupart des sites. Rapides et généralement efficaces.
  • enhanced : Proxies avancés pour le scraping de sites complexes tout en préservant la confidentialité. Plus lents, mais plus fiables sur certains sites.
  • auto : Firecrawl réessaiera automatiquement le scraping avec des proxies enhanced si le proxy basic échoue. Si le nouvel essai avec enhanced réussit, 5 crédits seront facturés pour le scraping. Si la première tentative avec basic réussit, seul le coût standard sera facturé.
Si vous ne spécifiez pas de proxy, Firecrawl utilisera auto par défaut.

Utiliser le mode amélioré

Lors du scraping de sites web complexes, vous pouvez utiliser le mode amélioré pour améliorer votre taux de réussite tout en préservant la confidentialité.
from firecrawl import Firecrawl

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

# Choisissez une stratégie de proxy : 'basic' | 'enhanced' | 'auto'
doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

print(doc.warning or 'ok')
Remarque : les requêtes via le proxy en mode amélioré coûtent 5 crédits par requête.

Utiliser Enhanced comme mécanisme de réessai

Un modèle courant consiste à d’abord essayer de faire du scraping avec les paramètres de proxy par défaut, puis à réessayer avec le mode Enhanced si vous rencontrez des codes d’état d’erreur spécifiques (401, 403 ou 500) dans le champ metadata.statusCode de la réponse. Ces codes d’état peuvent indiquer que le site web bloque votre requête.
# 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"Code d'état {status_code} reçu, nouvel essai avec le 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}")
Cette approche vous permet d’optimiser votre consommation de crédits en n’utilisant le mode Enhanced que lorsque c’est nécessaire.