프록시 미들웨어의 필요성
대규모 스크래핑에서는 프록시 관리를 스크래핑 로직으로부터 분리해야 합니다. 미들웨어 레이어는 이 분리를 담당합니다.
미들웨어 아키텍처
class ProxyMiddleware:
def __init__(self, client):
self.client = client
self.stats = {"success": 0, "failed": 0, "retries": 0}
def request(self, url, max_retries=3, proxy_type="residential"):
for attempt in range(max_retries):
try:
response = self.client.get(url, proxy_type=proxy_type)
if response.status_code == 200:
self.stats["success"] += 1
return response
elif response.status_code == 403:
self.stats["retries"] += 1
proxy_type = self._escalate(proxy_type)
except Exception:
self.stats["retries"] += 1
self.stats["failed"] += 1
return None
def _escalate(self, current_type):
escalation = {"datacenter": "residential", "residential": "mobile"}
return escalation.get(current_type, current_type)
주요 기능
- 자동 재시도 — 실패 시 지수 백오프로 재시도
- 프록시 에스컬레이션 — 차단 시 더 신뢰도 높은 프록시로 전환
- 통계 수집 — 성공률, 재시도율 추적
- 속도 제한 — 대상별 요청 빈도 제어
핵심 요약
- 미들웨어 레이어로 스크래핑과 프록시 관리를 분리하십시오.
- 자동 에스컬레이션으로 비용을 최적화하십시오.
- ProxyHat API는 미들웨어 구현을 간소화합니다.






