속도 제한이란?
속도 제한(Rate Limiting)은 단위 시간당 허용되는 요청 수를 제한하는 메커니즘입니다. 웹사이트는 과도한 요청으로부터 서버를 보호하기 위해 속도 제한을 적용합니다.
속도 제한 탐지 방법
- HTTP 429 Too Many Requests — 가장 명시적인 신호
- HTTP 503 Service Unavailable — 서버 과부하
- CAPTCHA 표시 — 의심스러운 트래픽에 챌린지
- 빈 응답 — 데이터 없이 200 반환
적절한 속도 설정
| 보호 수준 | 권장 간격 | 분당 요청 |
|---|---|---|
| 경량 | 1-2초 | 30-60건 |
| 보통 | 3-5초 | 12-20건 |
| 강력 | 5-10초 | 6-12건 |
적응형 속도 제어
import time
import random
class AdaptiveRateLimiter:
def __init__(self, base_delay=2.0):
self.delay = base_delay
self.min_delay = 1.0
self.max_delay = 30.0
def wait(self):
jitter = random.uniform(0.5, 1.5)
time.sleep(self.delay * jitter)
def success(self):
self.delay = max(self.min_delay, self.delay * 0.9)
def blocked(self):
self.delay = min(self.max_delay, self.delay * 2.0)
핵심 요약
- 적절한 속도 제한은 지속 가능한 스크래핑의 핵심입니다.
- 적응형 제어로 차단을 최소화하면서 효율을 극대화하십시오.
- ProxyHat 프록시와 적절한 속도 제한을 조합하십시오.






