프로젝트 소개

Crawl4AI는 웹 크롤링 및 스크래핑을 위한 오픈소스 Python 라이브러리이자 CLI 도구로, 깨끗하고 LLM 준비 완료 상태의 Markdown 출력을 생성하는 데 설계되었습니다. RAG 파이프라인, AI 에이전트, 데이터 추출 워크플로우 구축에 널리 사용됩니다. ## 개요 Crawl4AI는 웹을 downstream AI 처리에 적합한 구조화된 Markdown으로 변환합니다. 프로그래매틱 Python 사용과 명령줄 인터페이스를 모두 지원하며, 선택적 LLM 기반 구조화된 데이터 추출과 CSS/XPath 기반 스키마 추출을 제공합니다. ## 주요 기능 ### Markdown 생성 - 제목, 표, 코드 블록이 포함된 깨끗하고 구조화된 Markdown 생성 - Fit Markdown 모드는 노이즈와 관련 없는 콘텐츠를 제거하기 위한 휴리스틱 필터링 적용 - 링크를 번호가 매겨진 참조로 변환하는 인용문 인식 출력 - 쿼리 관련 추출을 위한 BM25 기반 콘텐츠 필터링 - 플러그인 가능한 Markdown 생성 전략 ### 구조화된 데이터 추출 - 오픈소스 및 상용 모델 모두 지원하는 LiteLLM을 통한 LLM 기반 추출 - CSS 선택기와 XPath를 사용한 JSON 스키마 기반 추출 - 표적 처리를 위한 청킹 전략(주제 기반, 정규식, 문장 수준) - 의미론적 콘텐츠 매칭을 위한 코사인 유사도 검색 ### 브라우저 통합 - Playwright 기반의 비동기 브라우저 풀 - 저장된 인증 상태와 쿠키가 포함된 사용자 소유 브라우저 프로필을 사용하는 관리형 브라우저 모드 - Chrome DevTools Protocol을 통한 원격 브라우저 제어 - 인증 지원 프록시 지원 - 봇 감지 감소 스텔스 모드 - 다중 브라우저 지원(Chromium, Firefox, WebKit) - 동적 뷰포트 조정 ### 크롤링 기능 - 동적 콘텐츠를 위한 비동기/동기 대기 지원 JavaScript 실행 - 크롤 중 스크린샷 캡처 - 미디어 추출(이미지, 오디오, 비디오, 반응형 srcset/picture 형식) - 원시 HTML 및 로컬 파일 처리 - iframe 콘텐츠를 포함한 포괄적인 링크 추출 - 무한 스크롤을 위한 지연 로드 처리 및 전체 페이지 스캔 - 모든 크롤 단계에서의 훅 기반 사용자 정의 - 내장 캐싱 ### 배포 - API 기반 워크플로우를 위한 Docker화된 FastAPI 서버 - JWT 토큰 인증(최근 버전에서 기본적으로 활성화) - `/dashboard` 및 `/playground`에서 모니터링 대시보드와 인터랙티브 플레이그라운드 - AI 도구 연결을 위한 MCP 통합 - 다중 아키텍처 Docker 이미지(AMD64/ARM64) - 클라우드 배포 준비 완료 ## 설치 ```bash pip install -U crawl4ai crawl4ai-setup ``` 수동 Playwright 설치를 위해: ```bash python -m playwright install --with-deps chromium ``` ## 사용법 ### Python API ```python import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result = await crawler.arun(url="https://example.com") print(result.markdown) asyncio.run(main()) ``` ### CLI ```bash # 기본 크롤 crwl https://example.com -o markdown # 심층 크롤 crwl https://example.com --deep-crawl bfs --max-pages 10 # LLM 추출 crwl https://example.com -q "Extract all product prices" ``` ### Docker ```bash docker pull unclecode/crawl4ai:latest docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest ``` 그런 다음 모니터링 UI를 위해 `http://localhost:11235/dashboard` 또는 인터랙티브 테스트 환경을 위해 `http://localhost:11235/playground`을 방문합니다. ## 프로젝트 정보 - 저장소: unclecode/crawl4ai - PyPI: crawl4ai - 문서: https://docs.crawl4ai.com/ - Discord 커뮤니티: https://discord.gg/jP8KfhDhyN - 후원: https://github.com/sponsors/unclecode 이 프로젝트는 개방성과 가격 경쟁력을 강조하며, 상업용 웹 추출 API의 자체 호스팅 대체제로 posicioningしています. 50,000개 이상의 GitHub 스타를 축적했으며 정기적인 릴리스를 통해 보안을 적극적으로 유지하고 있습니다.