프로젝트 소개
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 스타를 축적했으며 정기적인 릴리스를 통해 보안을 적극적으로 유지하고 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.