웹 크롤링 차단 우회 팁

7. 웹 크롤링 차단 우회 팁

웹 크롤링을 하다 보면 사이트에 의해 크롤링 요청이 차단되는 경우가 많습니다. 대표적인 차단 형태는 다음과 같습니다:

  • 403 Forbidden: 봇 접근 거부
  • 429 Too Many Requests: 너무 많은 요청으로 차단
  • Cloudflare 보안 페이지: 봇 탐지 시스템
  • reCAPTCHA: 자동화된 접근 방지

이러한 상황을 우회할 수 있는 방법들을 아래에서 소개합니다.

7.1 User-Agent 변경

requests 등 기본 크롤러는 봇으로 인식되기 쉬운 User-Agent를 사용합니다. 브라우저처럼 보이게 설정해봅시다.


headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/114.0.0.0 Safari/537.36'
}
res = requests.get('https://example.com', headers=headers)

7.2 요청 사이에 딜레이 주기 (time.sleep)

짧은 시간 안에 너무 많은 요청을 보내면 IP가 차단됩니다.


import time
for url in url_list:
    res = requests.get(url, headers=headers)
    time.sleep(1.5)  # 1.5초 간격

7.3 프록시(proxy) 사용

IP 차단을 피하기 위해 여러 프록시를 번갈아 사용하는 방법입니다.


proxies = {
    'http': 'http://111.111.111.111:8080',
    'https': 'http://111.111.111.111:8080'
}
res = requests.get('https://example.com', headers=headers, proxies=proxies)

💡 팁: 무료 프록시는 속도/안정성/보안이 낮기 때문에 유료 프록시프록시 회전 API를 사용하는 것이 좋습니다.

7.4 셀레니움 + 헤드리스 브라우저

자바스크립트 렌더링 및 실제 사용자처럼 동작하기 위해 사용됩니다. 봇 감지를 우회할 수 있습니다.


from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0")
driver = webdriver.Chrome(options=options)
driver.get("https://example.com")

7.5 Playwright 사용 (Cloudflare 우회에 유리)

Playwright는 실제 브라우저와 거의 동일하게 작동하므로 Cloudflare, Akamai 같은 고급 보안 시스템도 우회 가능합니다.


from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    page.goto("https://example.com")
    print(page.title())
    browser.close()

💡 참고: Playwright는 Selenium보다 가볍고 우회 성능이 좋습니다.

7.6 reCAPTCHA 우회는 거의 불가능 (권장하지 않음)

reCAPTCHA(I’m not a robot 체크박스 등)는 자동화된 접근을 방지하는 강력한 보안 시스템입니다. 기술적으로 우회하는 방법도 존재하긴 하지만, 법적·윤리적으로 문제가 될 수 있으므로 시도하지 않는 것을 추천합니다.

7.7 사이트의 robots.txt 확인하기

사이트의 크롤링 허용 범위를 확인하는 robots.txt는 반드시 체크해야 합니다.


https://example.com/robots.txt
  • User-agent: * → 모든 크롤러
  • Disallow: /private → 해당 경로 크롤링 금지

7.8 기타 보안 시스템 우회 팁

  • 쿠키 유지: 로그인 세션이나 인증 쿠키를 유지해야 하는 경우 session 객체 사용
  • Referer, Accept-Language 등 헤더 설정: 실제 브라우저처럼 보이게 만들기
  • VPN: 고정 IP 우회에 사용 가능

8. 정리

웹 크롤링 차단 우회는 기술적으로 가능하지만, 항상 해당 사이트의 정책과 법적 책임을 고려해야 합니다. 웹 크롤링의 기본 윤리는 “서버에 과도한 부담을 주지 않으며, 허용된 범위 내에서 사용한다”는 점입니다.

더 고급 기법(자동 쿠키 인증, 캡차 탐지 회피 등)이 궁금하다면 다음 글에서 다뤄보겠습니다.