Home
Login

고성능 Node.js/TypeScript 웹 크롤러, LLM에 최적화, 다중 검색 엔진 크롤링 및 구조화된 데이터 추출 지원

MITTypeScript 500any4aiAnyCrawl Last Updated: 2025-07-03

# AnyCrawl 프로젝트 상세 소개

🚀 프로젝트 개요

AnyCrawl은 Node.js/TypeScript 기반의 고성능 웹 크롤러 및 데이터 스크래핑 애플리케이션입니다. 이 프로젝트는 대규모 언어 모델(LLM)에 최적화되어 웹사이트 콘텐츠를 LLM에서 사용할 수 있는 데이터 형식으로 변환하고 Google, Bing, Baidu 등 검색 엔진에서 구조화된 검색 결과 페이지(SERP) 데이터를 추출할 수 있습니다.

🎯 핵심 기능

AnyCrawl은 여러 분야에서 뛰어난 성능을 보입니다.

  • SERP 크롤링: 여러 검색 엔진 지원, 일괄 처리 기능 보유
  • 웹 페이지 크롤링: 효율적인 단일 페이지 콘텐츠 추출
  • 사이트 크롤링: 지능적인 전체 사이트 크롤링 기능
  • 고성능 아키텍처: 멀티 스레드 및 멀티 프로세스 아키텍처 설계
  • 일괄 처리: 대량 크롤링 작업 효율적 처리

🏗️ 기술 아키텍처

현대적인 디자인

  • Node.js/TypeScript 기반 구축
  • 대규모 언어 모델(LLM)에 최적화
  • 네이티브 멀티 스레드 일괄 처리 지원
  • 현대적인 아키텍처 설계

지원하는 크롤링 엔진

AnyCrawl은 다양한 크롤링 엔진을 지원합니다.

  1. Cheerio: 정적 HTML 파싱, 가장 빠른 속도
  2. Playwright: JavaScript 렌더링, 최신 엔진 사용
  3. Puppeteer: JavaScript 렌더링, Chrome 엔진 사용

🚀 빠른 시작

Docker 배포

Docker Compose를 사용하여 빠르게 시작합니다.

docker compose up --build

환경 변수 구성

변수명 설명 기본값 예시
NODE_ENV 런타임 환경 production production, development
ANYCRAWL_API_PORT API 서비스 포트 8080 8080
ANYCRAWL_HEADLESS 브라우저 엔진이 헤드리스 모드를 사용하는지 여부 true true, false
ANYCRAWL_PROXY_URL 프록시 서버 URL (HTTP 및 SOCKS 지원) (없음) http://proxy:8080
ANYCRAWL_IGNORE_SSL_ERROR SSL 인증서 오류 무시 true true, false
ANYCRAWL_KEEP_ALIVE 요청 간 연결 유지 true true, false
ANYCRAWL_AVAILABLE_ENGINES 사용 가능한 크롤링 엔진 (쉼표로 구분) cheerio,playwright,puppeteer playwright,puppeteer
ANYCRAWL_API_DB_TYPE 데이터베이스 유형 sqlite sqlite, postgresql
ANYCRAWL_API_DB_CONNECTION 데이터베이스 연결 문자열/경로 /usr/src/app/db/database.db /path/to/db.sqlite
ANYCRAWL_REDIS_URL Redis 연결 URL redis://redis:6379 redis://localhost:6379
ANYCRAWL_API_AUTH_ENABLED API 인증 활성화 false true, false
ANYCRAWL_API_CREDITS_ENABLED 크레딧 시스템 활성화 false true, false

📝 API 사용 가이드

웹 페이지 스크래핑 API

기본 사용법

curl -X POST http://localhost:8080/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
  "url": "https://example.com",
  "engine": "cheerio"
}'

파라미터 설명

파라미터 유형 설명 기본값
url string (필수) 스크래핑할 URL. http:// 또는 https://로 시작하는 유효한 URL이어야 합니다. -
engine string 사용할 스크래핑 엔진. 옵션: cheerio (정적 HTML 파싱, 가장 빠름), playwright (JavaScript 렌더링, 최신 엔진), puppeteer (JavaScript 렌더링, Chrome 엔진) cheerio
proxy string 요청에 대한 프록시 URL. HTTP 및 SOCKS 프록시를 지원합니다. 형식: http://[username]:[password]@proxy:port (없음)

검색 엔진 스크래핑 API

기본 사용법

curl -X POST http://localhost:8080/v1/search \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
-d '{
  "query": "AnyCrawl",
  "limit": 10,
  "engine": "google",
  "lang": "all"
}'

파라미터 설명

파라미터 유형 설명 기본값
query string (필수) 실행할 검색 쿼리 -
engine string 사용할 검색 엔진. 옵션: google google
pages integer 검색할 검색 결과 페이지 수 1
lang string 검색 결과의 언어 코드 (예: 'en', 'zh', 'all') en-US

🧪 테스트 및 개발

Playground

Playground를 사용하여 API를 테스트하고 선호하는 프로그래밍 언어에 대한 코드 예제를 생성할 수 있습니다.

💡 참고: AnyCrawl을 자체 호스팅하는 경우 https://api.anycrawl.dev를 자신의 서버 URL로 바꿔야 합니다.

❓ 자주 묻는 질문

Q: 프록시를 사용할 수 있나요?

A: 예, AnyCrawl은 HTTP 및 SOCKS 프록시를 지원합니다. ANYCRAWL_PROXY_URL 환경 변수를 통해 구성합니다.

Q: JavaScript 렌더링된 콘텐츠를 어떻게 처리하나요?

A: AnyCrawl은 JavaScript 렌더링 요구 사항을 처리하기 위해 Puppeteer 및 Playwright를 지원합니다.

요약

AnyCrawl은 특히 AI 및 머신러닝 애플리케이션 시나리오에서 현대적인 웹 크롤링 기술의 최전선을 대표합니다. 고성능, 사용 편의성 및 풍부한 기능은 개발자와 기업이 대규모 데이터 스크래핑 작업을 처리하는 데 이상적인 선택입니다.

Star History Chart