IP Rotation & Residential Proxies
Définition
L'IP Rotation consiste à alterner les adresses IP sources lors du web scraping pour éviter les rate limits et les blocages. Les Residential Proxies utilisent des IP d'utilisateurs résidentiels réels, les rendant indistinguables du trafic légitime. Cette technique est essentielle pour le scraping à grande échelle mais soulève des questions éthiques.
Deep Dive
Stratégies de rotation IP en 2026
Types de proxies
**Datacenter Proxies**
**Residential Proxies**
**Mobile Proxies**
Stratégies de rotation
1. **Rotation par requête** : Nouvelle IP à chaque appel
2. **Sticky sessions** : Même IP pendant X minutes
3. **Géo-targeting** : Pool d'IP par pays/région
4. **Rotation intelligente** : Changement après erreur 429/403
Considérations légales
L'utilisation de proxies résidentiels peut impliquer :
Code Playground
Système de rotation de proxies avec gestion des échecs et backoff exponentiel
# Rotation IP avec backoff intelligent
import httpx
import random
from typing import List
import asyncio
class ProxyRotator:
def __init__(self, proxies: List[str]):
self.proxies = proxies
self.current_index = 0
self.failed_proxies = set()
def get_next_proxy(self) -> str:
"""Retourne le prochain proxy disponible"""
available = [p for p in self.proxies if p not in self.failed_proxies]
if not available:
self.failed_proxies.clear() # Reset si tous échoués
available = self.proxies
return random.choice(available)
def mark_failed(self, proxy: str):
"""Marque un proxy comme défaillant"""
self.failed_proxies.add(proxy)
async def scrape_with_rotation(urls: List[str], proxies: List[str]):
rotator = ProxyRotator(proxies)
results = []
async with httpx.AsyncClient() as client:
for url in urls:
for attempt in range(3):
proxy = rotator.get_next_proxy()
try:
response = await client.get(
url,
proxy=f"http://{proxy}",
timeout=10
)
if response.status_code == 200:
results.append(response.text)
break
elif response.status_code in [403, 429]:
rotator.mark_failed(proxy)
except Exception as e:
rotator.mark_failed(proxy)
await asyncio.sleep(2 ** attempt) # Backoff
return results
# Usage
proxies = [
"user:pass@residential1.proxy.com:8080",
"user:pass@residential2.proxy.com:8080",
"user:pass@residential3.proxy.com:8080",
]Avis d'Expert 2026
En 2026, les systèmes anti-bot analysent les patterns d'IP au-delà de l'adresse seule : ASN, géolocalisation, historique de réputation. Les proxies résidentiels restent efficaces mais leur coût augmente. La tendance est aux "browser farms" combinant proxies résidentiels et navigateurs réels distribués.
Besoin d'aide sur IP Rotation & Residential Proxies ?
Nos experts peuvent vous accompagner sur vos projets de crawling et d'optimisation GEO.
Contactez l'expert Crawlers.fr