Crawl4AI et Firecrawl sont devenus la manière par défaut d'alimenter les pipelines de LLM en données web — ils crawlent, rendent et restituent du Markdown propre que votre modèle peut réellement utiliser. Puis vous les pointez vers une cible réelle et vous découvrez ce que tout scraper finit par apprendre : la couche d'extraction n'a jamais été la partie difficile. La partie difficile, c'est que votre crawler s'exécute depuis une seule IP de centre de données, et le web peut le voir.
Ce guide montre la configuration de proxy fonctionnelle pour les deux outils — Crawl4AI auto-hébergé et les deux modes de Firecrawl — ainsi que la stratégie de session qui empêche les jobs d'ingestion pour RAG de mourir à la page 50. Il prolonge notre guide des proxies pour agents IA et notre guide browser-use aux frameworks de crawling.
Crawl4AI (open-source, auto-hébergé) accepte les proxies au niveau de BrowserConfig — un proxy par instance de crawler :
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig
browser_cfg = BrowserConfig(
headless=True,
proxy_config={
"server": "us.jibaoproxy.com:913",
"username": "USERNAME",
"password": "PASSWORD",
},
)
async with AsyncWebCrawler(config=browser_cfg) as crawler:
result = await crawler.arun(
url="https://example.com/docs",
config=CrawlerRunConfig(),
)
print(result.markdown[:500])
Pour les crawls profonds, faites tourner l'identité par instance de crawler, pas par page — les pages d'une même visite de site devraient partager une seule IP de sortie (un humain ne change pas de ville entre la page 3 et la page 4) :
def crawler_for(site_id: str) -> BrowserConfig:
# Sticky session per site: cookies + IP move together
return BrowserConfig(
headless=True,
proxy_config={
"server": "us.jibaoproxy.com:913",
"username": f"USERNAME-session-{site_id}",
"password": "PASSWORD",
},
)
# site A crawled through exit A, site B through exit B, in parallel
API cloud : le proxy est un paramètre de la requête — Firecrawl route à travers ses propres pools. Vous contrôlez le niveau de qualité, pas les IP :
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR-KEY")
result = app.scrape_url(
"https://example.com/pricing",
params={"proxy": "stealth"}, # basic | stealth | auto
)
Le hic : les requêtes de niveau stealth sont facturées à un multiple des crédits basic, et vous ne pouvez ni épingler précisément les pays ni maintenir des sessions sticky entre les appels. Parfait pour des pages occasionnelles ; cher et imprécis à un volume d'ingestion élevé.
Firecrawl auto-hébergé : vous fournissez votre propre proxy via des variables d'environnement, avec un contrôle total :
# .env for self-hosted Firecrawl
PROXY_SERVER=http://us.jibaoproxy.com:1000
PROXY_USERNAME=USERNAME
PROXY_PASSWORD=PASSWORD
Auto-hébergé + votre propre passerelle résidentielle est la configuration rationnelle en coût une fois que vous ingérez à grande échelle : vous payez au GB de bande passante au lieu de crédits par page avec un multiplicateur stealth.
semaphore_count / delay de Crawl4AI existent pour ça — 2–4 pages concurrentes par site suffisent largement ; répartissez le parallélisme entre les sites.ETag/Last-Modified là où le framework le permet.| Configuration | Vous payez pour | Idéal quand |
|---|---|---|
| Firecrawl cloud, proxy stealth | Crédits par page × multiplicateur stealth | Faible volume, zéro ops |
| Firecrawl auto-hébergé + GB résidentiels | Bande passante seule (~$10/GB) | Volume d'ingestion régulier |
| Crawl4AI + GB résidentiels | Bande passante seule, contrôle total | Pipelines sur mesure, crawls profonds |
Une page typique riche en texte coûte 100–300 KB à travers un proxy — soit environ 3 000–10 000 pages par GB. Les boucles de blocage-et-retry sont ce qui fait exploser le budget, ce qui est une raison de plus pour corriger la détection avant de monter en volume.
proxy_config dans BrowserConfig ; identité sticky par site, rotation entre les sites.proxy: "stealth", coûteux à grand volume ; auto-hébergé : votre propre passerelle via variables d'environnement.Sorties résidentielles, sessions sticky, tarification au GB — 500 Mo de trafic gratuit, sans carte requise.
Démarrer l'essai gratuitLes nouveaux utilisateurs reçoivent 500 Mo à l'inscription, plus un bonus sur la première recharge. Offre à durée limitée.