any4ai/AnyCrawl

AnyCrawl 🚀: A Node.js/TypeScript crawler that turns websites into LLM-ready data and extracts structured SERP results from Google/Bing/Baidu/etc. Native multi-threading for bulk processing.

GitHub에서 열기 ↗ ai-scrapingaitoolscrawldatahtml-to-markdownragscrapescrapingserpwebscraper
3,303
GitHub 스타
354
포크
MDX
언어
MIT
라이선스
2026.06.29
최근 푸시
2026.04.21
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
AnyCrawl은 LLM 기반 데이터 추출과 멀티스레딩 성능이 강점인 크롤링 도구로, AI 데이터 파이프라인 구축 시 참고 및 도입 가치가 높습니다.

강점

  • 멀티스레딩/멀티프로세스를 지원하여 대규모 배치 작업에 적합합니다.
  • LLM 기반 구조화된 데이터 추출 기능을 제공하여 AI 워크플로우에 바로 통합할 수 있습니다.
  • Cheerio, Playwright, Puppeteer 등 다양한 스크래핑 엔진을 지원하여 정적/동적 페이지 모두 처리 가능합니다.

약점

  • README에 명시된 검색 엔진은 Google만 지원되어 SERP 기능의 범위가 제한적입니다.
  • 자체 호스팅 시 Redis와 같은 외부 의존성이 필요할 수 있습니다.
  • 문서에서 캐시 및 고급 설정에 대한 세부 정보가 부족하여 초보자가 설정하기 어려울 수 있습니다.

주의사항

  • API 키 생성 및 인증 설정이 필요하며, 이를 잘못 구성하면 보안 문제가 발생할 수 있습니다.
  • 프록시 사용 시 요청별 또는 환경 변수로 설정해야 하며, 기본 프록시의 품질에 의존할 수 있습니다.
  • LLM 추출 기능은 외부 AI 제공자(Atlas Cloud 등)에 의존하므로 추가 비용이 발생할 수 있습니다.

시작 가이드

  • 공식 문서를 방문하여 전체 API 및 설정 방법을 숙지합니다.
  • Playground에서 API를 테스트하고 원하는 언어로 코드를 생성해 봅니다.
  • 자체 호스팅 환경에서 Docker Compose를 사용하여 빠르게 배포해 봅니다.
  • LLM 추출 기능을 활용하여 특정 웹사이트에서 구조화된 데이터를 추출하는 예제를 실행해 봅니다.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

개요

AnyCrawl은 고성능 크롤링 및 스크래핑 툴킷입니다:

  • SERP 크롤링: 여러 검색 엔진, 배치 작업에 적합
  • 웹 스크래핑: 단일 페이지 콘텐츠 추출
  • 사이트 크롤링: 전체 사이트 탐색 및 수집
  • 고성능: 멀티스레딩 / 멀티프로세스
  • 배치 작업: 안정적이고 효율적
  • AI 추출: LLM 기반 구조화된 데이터(JSON) 추출

LLM 친화적입니다. 통합 및 사용이 쉽습니다.

빠른 시작

📖 전체 문서 보기: Docs

API 키 생성 (자체 호스팅)

인증을 활성화한 경우(ANYCRAWLAPIAUTH_ENABLED=true), API 키를 생성합니다:

pnpm --filter api key:generate
# 선택적으로 키 이름 지정
pnpm --filter api key:generate -- default

명령어는 uuid, 키 및 크레딧을 출력합니다. 출력된 키를 Bearer 토큰으로 사용하세요.

Docker 내에서 실행

Docker를 통해 AnyCrawl을 실행하는 경우:

  • Docker Compose:
docker compose exec api pnpm --filter api key:generate
docker compose exec api pnpm --filter api key:generate -- default
  • 단일 컨테이너 (컨테이너 이름 또는 ID로 대체):
docker exec -it <container_name_or_id> pnpm --filter api key:generate
docker exec -it <container_name_or_id> pnpm --filter api key:generate -- default

사용 예제

💡 Playground를 사용하여 API를 테스트하고 원하는 언어로 코드를 생성하세요.

자체 호스팅하는 경우 https://api.anycrawl.dev를 자신의 서버 URL로 바꾸세요.

웹 스크래핑 (Scrape)

예제

curl -X POST https://api.anycrawl.dev/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 (Chrome으로 JavaScript 렌더링) cheerio
proxy string 요청에 사용할 프록시 URL. HTTP 및 SOCKS 프록시 지원. 형식: http://[username]:[password]@proxy:port (없음)
max_age number 캐시 제어 (ms). 0 = 강제 새로고침 (캐시 읽기 건너뜀); > 0 = 이 기간 내의 캐시된 콘텐츠 허용; 생략 시 기본값 사용 (없음)
storeincache boolean 캐시 제어. 결과를 캐시에 저장할지 여부. 캐시 읽기를 우회하려면 max_age=0 사용 true

더 많은 매개변수: Request Parameters 참조.

캐시 세부 정보 (자체 호스팅 / S3 / 맵 인덱스): docs/cache.md 참조.

LLM 추출

curl -X POST "https://api.anycrawl.dev/v1/scrape" \
  -H "Authorization: Bearer YOUR_ANYCRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "json_options": {
      "schema": {
        "type": "object",
        "properties": {
          "company_mission": { "type": "string" },
          "is_open_source": { "type": "boolean" },
          "employee_count": { "type": "number" }
        },
        "required": ["company_mission"]
      }
    }
  }'

Atlas Cloud 제공자

AnyCrawl은 추출 및 요약 작업을 위해 Atlas Cloud를 OpenAI 호환 LLM 제공자로 지원합니다.

  • 공식 사이트: Atlas Cloud
  • LLM 기본 URL: https://api.atlascloud.ai/v1
  • 권장 환경 모델 형식: atlascloud/deepseek-v3
ATLASCLOUD_BASE_URL=https://api.atlascloud.ai/v1
ATLASCLOUD_API_KEY=your-atlascloud-api-key
DEFAULT_LLM_MODEL=atlascloud/deepseek-v3
DEFAULT_EXTRACT_MODEL=atlascloud/deepseek-v3

파일 기반 AI 구성을 선호하는 경우, ai.config.jsonatlascloud 제공자 항목을 추가하고 OpenAI 호환 채팅 API를 통해 노출되는 모든 Atlas Cloud 모델에 매핑하세요.

사이트 크롤링 (Crawl)

예제

curl -X POST https://api.anycrawl.dev/v1/crawl \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_ANYCRAWL_API_KEY' \
  -d '{
  "url": "https://example.com",
  "engine": "playwright",
  "max_depth": 2,
  "limit": 10,
  "strategy": "same-domain"
}'

매개변수

매개변수 타입 설명 기본값
url string (필수) 크롤링을 시작할 URL -
engine string 크롤링 엔진. 옵션: cheerio, playwright, puppeteer cheerio
max_depth number 시작 URL로부터의 최대 깊이 10
limit number 크롤링할 최대 페이지 수 100
strategy enum 범위: all, same-domain, same-hostname, same-origin same-domain
include_paths array<string> 이 패턴과 일치하는 경로만 크롤링 (없음)
exclude_paths array<string> 이 패턴과 일치하는 경로 건너뛰기 (없음)
scrape_options object 페이지별 스크래핑 옵션 (형식, 타임아웃, JSON 추출 등), Scrape 옵션과 동일 (없음)

더 많은 매개변수 및 엔드포인트: Request Parameters 참조.

검색 엔진 결과 (SERP)

예제

curl -X POST https://api.anycrawl.dev/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

지원되는 검색 엔진

  • Google

FAQ

  1. 프록시를 사용할 수 있나요? 네. AnyCrawl은 고품질 기본 프록시와 함께 제공됩니다. 또한 자체 프록시를 구성할 수 있습니다: proxy 요청 매개변수 (요청별) 또는 ANYCRAWLPROXYURL (자체 호스팅)을 설정하세요.
  2. JavaScript 렌더링 페이지를 어떻게 처리하나요? Playwright 또는 Puppeteer 엔진을 사용하세요.

기여

기여를 환영합니다! 기여 가이드를 참조하세요.

후원자

월간 기부로 활동을 지원해 주세요. [후원자가 되기]

라이선스

MIT 라이선스 — LICENSE 참조.

미션

우리는 AI 생태계를 위한 간단하고 신뢰할 수 있으며 확장 가능한 도구를 구축합니다.

원본 저장소: any4ai/AnyCrawl

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.