Crawl4AI 사용법: 웹페이지를 AI가 읽기 좋은 데이터로 바꾸는 크롤러
GitHub 일간 Trending 6위에 오른 Crawl4AI의 설치와 최소 실행법을 살펴본다. 동적 페이지·Markdown 변환·구조화 추출 기능과 함께 권한, 데이터 전송, 보안상 주의점을 짚었다.
Crawl4AI는 웹페이지를 가져와 정리된 Markdown, 링크, 미디어와 구조화 데이터로 변환하는 Apache-2.0 라이선스의 오픈소스 Python 크롤러다. 2026년 8월 31일 10시 12분(Asia/Seoul) 확인 기준 GitHub 일간 Trending 6위에 올랐고, 페이지에는 221 stars today가 표시됐다. 같은 시각 GitHub API의 총 스타 수는 80,235개였다.
무엇을 하는 소프트웨어인가
Crawl4AI는 Playwright 기반 브라우저로 JavaScript가 실행되는 페이지를 읽고, 원문 HTML과 정제된 Markdown을 함께 반환한다. CSS 선택자나 스키마를 이용한 구조화 추출, 스크린샷, 링크·미디어 수집, 깊이 우선·너비 우선 크롤링, 캐시와 프록시 설정을 지원한다. LLM에 문서를 넣기 전에 광고와 탐색 요소를 줄이거나 특정 본문만 남기는 용도에 적합하다.
현재 최신 안정 릴리스는 v0.9.2로 2026년 7월 15일 공개됐다. 저장소 기본 브랜치는 main이며 최근 push는 8월 29일이었다. 급상승 수치는 누적 스타가 아니라 GitHub Trending이 표시한 당일 증가량을 기준으로 확인했다.
설치와 최소 실행
Python 가상환경에서 다음과 같이 설치한다. 브라우저 바이너리를 내려받으므로 디스크와 네트워크 정책을 먼저 확인한다.
python -m venv .venv
. .venv/bin/activate
python -m pip install crawl4ai
crawl4ai-setup
가장 작은 비동기 예제는 한 페이지를 열고 변환된 Markdown의 앞부분을 출력한다.
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.raw_markdown[:500])
asyncio.run(main())
위 명령 형식과 API는 공식 README와 v0.9.2 문서를 대조했다. 이 작업에서는 대상 사이트에 자동 요청을 보내는 실제 크롤링은 실행하지 않았다.
어디에 쓸 수 있나
- 검색·RAG 수집: 제품 문서와 도움말을 Markdown으로 정리해 색인 파이프라인에 넘긴다.
- 변경 감시: 공지나 가격 페이지의 특정 영역을 주기적으로 추출해 차이를 비교한다.
- 품질 점검: 렌더링 후 링크와 메타데이터를 수집해 사이트 이전 결과를 검사한다.
- 구조화 추출: 반복되는 카드나 표를 CSS 스키마로 JSON에 가깝게 변환한다.
권한·보안·데이터 전송
기본 로컬 Python 사용은 가져온 페이지와 결과를 실행 환경에서 처리하지만, LLMExtractionStrategy에 외부 모델 API를 연결하면 추출 대상 내용이 해당 제공자에게 전송될 수 있다. API 키와 개인정보가 포함된 페이지를 다룰 때는 모델 제공자의 보존 정책과 조직 규정을 확인해야 한다.
브라우저 자동화는 대상 사이트의 쿠키와 로그인 세션에 접근할 수 있다. 별도 사용자 프로필과 최소 권한 계정을 사용하고, 다운로드·파일 URL·내부망 주소 접근을 제한해야 한다. 자체 호스팅 Docker API는 네트워크에 노출하기 전에 인증, 바인딩 주소, SSRF1 방어와 최신 버전을 확인한다. robots.txt, 이용약관, 저작권, 요청 속도 제한도 기술적 성공 여부와 별개의 준수 사항이다.
한계와 도입 전 확인 사항
브라우저를 띄우는 방식은 단순 HTTP 수집보다 메모리와 CPU 사용량이 크다. 안티봇 우회 기능은 사이트 정책을 무시할 권리를 주지 않으며, 화면 구조가 바뀌면 CSS 기반 추출이 깨질 수 있다. 프로덕션 도입 전에는 허용 도메인, 동시성, 타임아웃, 결과 크기, 실패 재시도와 저장 데이터 삭제 정책을 명시해야 한다.
출처
순위·당일 스타 증가·총 스타·최근 push 확인: 2026년 8월 31일 10시 12분(Asia/Seoul).
1 SSRF: 서버가 공격자가 지정한 내부 또는 외부 주소로 대신 요청하게 만드는 취약점.