피드로 돌아가기
Dev.toBackend
원문 읽기
TLS Fingerprinting 우회와 Proxy Rotation을 통한 Reverb 거래 데이터 대규모 추출
Reverb Scraper: pull historical sold prices for any musical gear
AI 요약
Context
Reverb Price Guide의 대량 데이터 추출을 위한 공식 API 부재로 인한 제약 발생. 단순 HTTP 요청 시 Cloudflare의 TLS Fingerprinting 및 Rate Limit으로 인한 접근 차단 및 데이터 유실 문제 직면.
Technical Solution
- Undocumented JSON API(/api/priceguide)를 식별하여 HTML 파싱 오버헤드 제거 및 데이터 정밀도 향상
- curl-cffi 기반의 Chrome 131 TLS 및 HTTP/2 SETTINGS 프레임 모사를 통한 Browser Impersonation 구현
- Residential Proxy Rotation과 Exponential Backoff(2s~30s) 전략을 결합하여 408/429/503 에러 대응 및 파이프라인 안정성 확보
- Pydantic v2 기반의 Schema Validation을 적용하여 비정형 문자열 데이터(연도 표기법 등)의 무결성 유지
- maxGuides 캡핑 메커니즘을 도입하여 대규모 쿼리에 따른 무분별한 Fan-out 및 비용 발생 방지
Impact
- 거래당 $0.005의 비용으로 1,000건당 약 $5.05 수준의 경제적 추출 구조 달성
- 60,000건 이상의 대규모 엔트리 대상 쿼리 제어를 통한 예측 가능한 리소스 소모 구현
실천 포인트
1. 단순 User-Agent 변경이 아닌 TLS ClientHello 레벨의 지문 모사 필요성 검토
2. API 응답의 데이터 타입이 가변적(String/Int 혼용)일 경우 강제 형변환 대신 원본 보존 및 Validation Layer 구축
3. 외부 API 의존성 설계 시 Exponential Backoff와 Retry-After 헤더 준수 로직 필수 적용