Crawl4AI 고급 기능 — 프록시·PDF·세션·스텔스

Crawl4AI 고급 기능

단순 크롤을 넘어, 실제 프로덕션 수집에는 인증·프록시·봇 차단 같은 걸림돌이 많아요. Crawl4AI는 이런 파워 유저 기능들을 한데 모아 두고 있어요.

프록시 사용

IP 순환, 지리 테스트, 프라이버시를 위해 트래픽을 프록시로 보내고 싶다면 BrowserConfig.proxy_config로 설정해요.

PDF·스크린샷 캡처

한 번의 크롤에서 PDF와 스크린샷을 동시에 잡을 수 있어요.

import asyncio
from crawl4ai import AsyncWebCrawler, CacheMode, CrawlerRunConfig

async def main():
    run_config = CrawlerRunConfig(cache_mode=CacheMode.BYPASS, screenshot=True, pdf=True)
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(url="https://example.com", config=run_config)
        # result.pdf / result.screenshot (base64-encoded)
  • pdf=True — 현재 페이지를 PDF로 내보냄 (base64, result.pdf)
  • screenshot=True — 스크린샷 (base64, result.screenshot)
  • scroll_delay — 긴 페이지 전체 스크린샷을 찍을 때 스크롤 간 지연(초). 기본값 0.2
  • scan_full_page — 전체 콘텐츠 캡처 여부

세션 지속 & 로컬 스토리지

쿠키와 localStorage를 보존해 로그인된 세션을 이어갈 수 있어요. 한 번 로그인해서 브라우저 컨텍스트를 내보내고, 이후엔 재사용할 수 있어요.

  • await context.storage_state(path="my_storage.json") — 쿠키·localStorage를 파일로 내보냄
  • 다음 실행에 storage_state="my_storage.json"을 넘기면 로그인 단계를 건너뛰어요.

Robots.txt 준수

CrawlerRunConfig(check_robots_txt=True)를 켜면 robots.txt 규칙을 확인하고 지켜요. 효율적인 캐싱도 함께 지원해요.

봇 차단 우회 (스텔스 모드)

playwright-stealth로 브라우저 지문과 동작을 변조해 기본 봇 감지를 우회해요.

browser_config = BrowserConfig(enable_stealth=True, headless=False)

기본적인 봇 감지(navigator.webdriver 체크 등)가 있는 사이트는 스텔스 모드부터 시작하고, 그래도 막히면 undetected browser 모드를 고려해요. undetected browser는 약간 느릴 수 있으니 필요한 경우에만 쓰는 게 좋아요.

더 알아보기