"requests.get으로 쿠팡 상품 페이지를 가져왔는데 빈 페이지만 나옵니다"
— 매주 개발자 커뮤니티에 올라오는 질문
읽는 시간: 15분 | 2026년 1월 기준
핵심 요약
쿠팡 크롤링은 2024년 이후 급격히 어려워졌습니다. Akamai Bot Manager가 도입되면서 Selenium, Playwright, Puppeteer 같은 자동화 도구가 거의 전부 차단됩니다.
이 글에서 다루는 내용:
- 쿠팡이 크롤링을 차단하는 정확한 원리 (5단계 탐지 구조)
- 직접 우회를 시도할 때 왜 실패하는지 (코드 포함)
- 2026년 기준 실제로 작동하는 방법 3가지
- 각 방법의 비용과 한계 (월간 비교표)
결론부터 말하면: 소규모 테스트는 가능하지만, 안정적인 대규모 수집은 전문 서비스 없이는 사실상 불가능합니다.
목차
- 쿠팡 데이터, 누가 왜 수집하나
- 쿠팡에서 수집할 수 있는 데이터
- 쿠팡 크롤링이 어려워진 이유
- Akamai Bot Manager의 5단계 탐지 구조
- 흔한 시도와 실패 패턴
- 방법 1: 직접 구축 (상급자용)
- 방법 2: 프록시 서비스 활용
- 방법 3: 크롤링 전문 서비스 활용
- 비용 비교: 어떤 방법이 합리적인가
- 나에게 맞는 방법 찾기
- 자주 묻는 질문
1. 쿠팡 데이터, 누가 왜 수집하나
쿠팡은 한국 이커머스 시장 점유율 1위입니다. 그만큼 쿠팡 데이터에 대한 수요도 큽니다.
경쟁사 가격 모니터링 — 자사 상품이 쿠팡에서 얼마에 팔리는지, 경쟁 제품 가격이 어떻게 변하는지 실시간으로 파악합니다. 유통 브랜드, 제조사, 리테일 기업이 주로 활용합니다.
시장 조사 & 트렌드 분석 — 특정 카테고리의 인기 상품, 신상품 출시 현황, 가격 분포를 분석합니다. 컨설팅 회사, 리서치 기관, 스타트업이 시장 진입 전에 활용합니다.
리뷰 분석 — 자사/경쟁사 상품의 고객 반응을 수집하고 분석합니다. 제품 개선, 마케팅 메시지 도출, VOC(Voice of Customer) 확보에 활용합니다.
MAP(최소 광고 가격) 모니터링 — 브랜드가 지정한 최소 판매 가격을 리셀러가 지키는지 모니터링합니다. 가격 정책을 위반하는 판매자를 찾아내는 데 활용합니다.
재고 & 품절 모니터링 — 경쟁 제품의 재고 상태를 추적하여 기회를 포착합니다.
이런 데이터를 수동으로 확인하려면 수백~수천 개 상품 페이지를 매일 방문해야 합니다. 자동화가 필수인 이유입니다.
2. 쿠팡에서 수집할 수 있는 데이터
크롤링이 성공하면 어떤 데이터를 얻을 수 있을까요? 쿠팡 상품 페이지에서 추출 가능한 주요 항목입니다:
상품 기본 정보
- 상품명, 브랜드명, 카테고리
- 판매가, 할인가, 쿠폰 적용가
- 상품 이미지 URL
- 판매자 정보 (로켓배송 여부 포함)
- 상품 옵션 (색상, 사이즈 등)
리뷰 데이터
- 전체 평점 및 리뷰 수
- 개별 리뷰 텍스트, 작성자, 작성일
- 리뷰 이미지
- 별점 분포 (1~5점)
판매 & 재고 정보
- 품절/재입고 상태
- 배송 예정일
- 구매 건수 표시 ("10,000+건 구매")
카테고리/검색 데이터
- 카테고리별 상품 목록 및 순위
- 검색 키워드별 노출 상품
- 추천 상품 목록
수집 가능한 데이터 범위는 크롤링 방법과 규모에 따라 달라집니다. 단순 가격 조회는 비교적 쉽지만, 리뷰 전문 수집이나 실시간 재고 모니터링은 더 정교한 기술이 필요합니다.
3. 쿠팡 크롤링이 어려워진 이유
과거 vs 현재
2022년 이전: Python requests + BeautifulSoup만으로 상품 페이지를 가져올 수 있었습니다. User-Agent 헤더만 설정하면 충분했습니다.
2023년: 기본적인 봇 차단이 적용됐습니다. Selenium으로 우회할 수 있는 수준이었습니다.
2024년~현재: Akamai Bot Manager가 전면 도입됐습니다. 기존 자동화 도구로는 거의 불가능해졌습니다.
왜 갑자기 강화됐나
쿠팡은 2021년 뉴욕증권거래소(NYSE)에 상장한 이후 데이터 보호와 인프라 보안에 대규모 투자를 해왔습니다. Akamai는 글로벌 CDN 및 보안 시장에서 최대 규모의 기업 중 하나로, 그들의 Bot Manager는 봇 탐지 분야 최상위 솔루션입니다.
차단 강화의 구체적 이유:
- 경쟁사 가격 수집 차단: 11번가, G마켓 등 경쟁 플랫폼의 조직적 가격 모니터링 방지
- 자동 구매 봇 차단: 한정판 상품(로켓직구 등)의 봇 구매 방지
- 서버 비용 절감: 무분별한 크롤링 트래픽은 실제 서비스 비용을 증가시킴
- 데이터 자산 보호: 수억 건의 상품 리뷰와 가격 이력은 쿠팡의 핵심 자산
4. Akamai Bot Manager의 5단계 탐지 구조
Akamai Bot Manager는 단순히 IP 주소만 확인하지 않습니다. 5개 층으로 구성된 다층 탐지 시스템입니다.
레이어 1: HTTP 헤더 & TLS 지문
가장 먼저 확인하는 것은 HTTP 요청 자체의 특성입니다.
탐지되는 패턴:
- User-Agent가 없거나 비정상적인 값
- Accept-Language, Accept-Encoding 등 필수 헤더 누락
- 헤더 순서가 실제 브라우저와 다름
- TLS 지문(JA3/JA4 해시)이 봇 도구의 패턴과 일치
Python의 requests 라이브러리는 TLS 핸드셰이크 패턴이 실제 Chrome과 완전히 다릅니다. 이 단계에서 이미 필터링됩니다.
레이어 2: JavaScript 실행 검증
쿠팡 페이지 로딩 시 Akamai의 센서 스크립트(약 70KB)가 함께 실행됩니다. 이 스크립트는:
- 브라우저에서 JavaScript가 정상 실행되는지 확인
navigator,window,document등 브라우저 API의 응답값을 수집- WebGL, Canvas, AudioContext 등의 지문을 생성
- 수집된 데이터를 암호화하여 Akamai 서버로 전송
- 검증 통과 시
_abck쿠키를 발급 (이 쿠키 없이는 데이터 접근 불가)
JavaScript를 실행하지 않는 도구(requests, curl, Scrapy)는 이 쿠키를 받을 수 없어 차단됩니다.
레이어 3: 브라우저 지문(Fingerprinting)
센서 스크립트가 수집하는 브라우저 지문은 매우 상세합니다:
| 항목 | 수집 내용 |
|---|---|
| Navigator | userAgent, platform, language, plugins, hardwareConcurrency |
| Screen | width, height, colorDepth, availWidth, availHeight |
| WebGL | 렌더러 이름, 벤더, 지원 확장 목록 |
| Canvas | 고유 렌더링 해시 (동일 하드웨어라도 OS/드라이버로 차별화) |
| AudioContext | 오디오 처리 파이프라인 지문 |
| 자동화 플래그 | navigator.webdriver, __selenium_evaluate, callPhantom, _phantom 등 |
Selenium은 기본적으로 navigator.webdriver = true를 설정합니다. 이 한 가지만으로도 즉시 봇으로 판정됩니다.
레이어 4: 행동 분석 (가장 우회하기 어려움)
Akamai는 사용자 행동 패턴까지 분석합니다:
- 마우스 궤적: 사람은 직선으로 이동하지 않습니다. 미세한 떨림과 곡선이 있습니다. Akamai는 이 궤적의 엔트로피를 측정합니다.
- 키보드 입력: 타이핑 속도와 키 간 간격(keystroke dynamics)을 분석합니다. 모든 글자를 정확히 같은 간격으로 입력하면 봇입니다.
- 스크롤 패턴: 자동 스크롤은 일정한 속도를 유지하지만, 사람은 관심 있는 부분에서 멈추고, 빠르게 건너뛰고, 되돌아갑니다.
- 페이지 체류 시간: 페이지 로딩 후 0.5초 만에 데이터를 추출하고 나가는 패턴은 자동화의 전형입니다.
- 클릭 좌표: 매번 동일한 좌표를 정확히 클릭하는 것은 사람의 행동이 아닙니다.
레이어 5: IP 평판 & Rate Limiting
- 동일 IP에서 단시간 다수 요청 → 즉시 차단
- 데이터센터 IP(AWS, GCP, Azure 등) → 의심 점수 대폭 증가
- VPN 서비스 IP 대역 → 블랙리스트 등록
- 이전에 차단된 IP → 영구 블랙리스트
5개 레이어를 모두 통과해야 정상적인 데이터를 받을 수 있습니다. 하나라도 걸리면 차단입니다.
5. 흔한 시도와 실패 패턴
쿠팡 크롤링을 시도하는 개발자들이 겪는 대표적인 실패 사례입니다.
시도 1: requests + BeautifulSoup
import requests
from bs4 import BeautifulSoup
url = "https://www.coupang.com/vp/products/12345678"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
"AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36"
}
response = requests.get(url, headers=headers)
print(response.status_code) # 403 Forbidden
print(len(response.text)) # 빈 HTML 또는 챌린지 페이지
왜 실패하는가: JavaScript를 실행하지 않으므로 센서 데이터를 Akamai에 전송할 수 없습니다. _abck 쿠키 발급이 불가능해 모든 요청이 차단됩니다. TLS 지문도 Python 패턴으로 감지됩니다.
시도 2: Selenium + ChromeDriver
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless") # ← 이것부터 문제
driver = webdriver.Chrome(options=options)
driver.get("https://www.coupang.com/vp/products/12345678")
# → Akamai 챌린지 페이지 또는 무한 로딩
왜 실패하는가: navigator.webdriver가 true로 설정되어 레이어 3에서 즉시 탐지됩니다. undetected-chromedriver를 사용해도 2024년 이후 Akamai 센서 v3가 추가적인 자동화 흔적(CDP 연결 등)을 감지합니다.
시도 3: Playwright + Stealth 플러그인
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # Headed 모드
context = browser.new_context()
page = context.new_page()
page.goto("https://www.coupang.com/vp/products/12345678")
# 가끔 성공 → 그러나 10회 중 3~4회만 통과
왜 불안정한가: Headed 모드에서는 레이어 1~3을 통과할 수 있지만, 대규모 수집 시 레이어 4(행동 분석)와 레이어 5(Rate Limiting)에서 차단됩니다. 성공률이 들쭉날쭉해서 프로덕션에 쓸 수 없습니다.
시도 4: Scrapy + 프록시 회전
# settings.py
ROTATING_PROXY_LIST = [...]
DOWNLOADER_MIDDLEWARES = {
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
}
왜 실패하는가: Scrapy는 HTTP 클라이언트입니다. 프록시를 아무리 바꿔도 JavaScript를 실행할 수 없으므로 레이어 2에서 전부




