Passer au contenu principal
Firecrawl propose différents types de proxy pour vous aider à extraire des sites web présentant des niveaux de complexité variés. Le type de proxy peut être indiqué à 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.
  • stealth : Proxies furtifs 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 avec des proxys furtifs si le proxy basic échoue. Si le nouvel essai en stealth réussit, 5 crédits seront facturés pour le scraping. Si la première tentative en basic réussit, seul le coût standard sera facturé.
Si vous ne spécifiez pas de proxy, Firecrawl utilisera le mode auto par défaut.

Utiliser le mode furtif

Pour l’extraction de sites web complexes, vous pouvez utiliser le mode furtif afin d’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' | 'stealth' | 'auto'
doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

print(doc.warning or 'ok')
Remarque : Les requêtes en proxy furtif coûtent 5 crédits chacune.

Utiliser Stealth comme mécanisme de retry

Un schéma courant consiste à tenter d’abord le scraping avec les paramètres de proxy par défaut, puis à réessayer avec le mode stealth si vous rencontrez des codes d’erreur spécifiques (401, 403 ou 500) dans le champ metadata.statusCode de la réponse. Ces codes peuvent indiquer que le site bloque votre requête.
# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="YOUR_API_KEY")

# Essai initial avec le proxy basic
try:
    content = firecrawl.scrape("https://example.com")
    
    # Vérifier si un code d’erreur a été reçu
    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 stealth")
        # Réessayer avec le proxy stealth
        content = firecrawl.scrape("https://example.com", proxy="stealth")
    
    print(content["markdown"])
except Exception as e:
    print(f"Erreur : {e}")
    # En cas d’exception, réessayer avec le proxy stealth
    try:
        content = firecrawl.scrape("https://example.com", proxy="stealth")
        print(content["markdown"])
    except Exception as e:
        print(f"Échec également avec le proxy stealth : {e}")
Cette approche permet d’optimiser votre consommation de crédits en n’activant le mode stealth que lorsque c’est nécessaire.