
AI 에이전트 및 LLM을 위한 웹 데이터 가져오기
Rust를 위한 가장 빠른 웹 크롤러 및 스크래퍼입니다.
Spider는 Rust로 작성된 동시성 우선 크롤링 엔진입니다. 페이지가 도착하는 대로 스트리밍하며, JavaScript가 필요한 페이지에만 렌더링하고, 코드 변경 없이 단일 스크립트에서 분산 클러스터까지 확장할 수 있습니다. 동일한 엔진이 Spider Cloud에서 구동되므로, 로컬에서 프로토타입을 제작한 후 설정 변경 하나로 관리형 인프라로 전환할 수 있습니다.
대규모 크롤링에서 가장 어려운 부분은 코드가 아닙니다. 프록시, 헤드리스 브라우저, 그리고 끊임없이 변화하는 봇 차단 기술입니다. Spider Cloud는 동일한 API 뒤에 모든 것을 대신 실행해 줍니다.
무료 API 키 받기 → (결제 수단 등록 불필요)
[dependencies]
spider = { version = "2", features = ["spider_cloud"] }
use spider::configuration::{SpiderCloudConfig, SpiderCloudMode};
use spider::website::Website;
let cloud = SpiderCloudConfig::new("sk-...")
.with_mode(SpiderCloudMode::Smart); // 기본적으로 프록시 사용, 차단 시 스틸스 스크래핑
let mut website = Website::new("https://example.com")
.with_spider_cloud_config(cloud)
.build()?;
Smart 모드는 먼저 프록시를 통해 라우팅하며, 차단을 시도하는 페이지에만 스틸스 /scrape로 격상하므로 필요한 곳에만 우회 비용을 지불합니다.
키나 서비스 불필요. 크롤러만 있으면 됩니다.
[dependencies]
spider = "2"
use spider::{tokio, website::Website};
#[tokio::main]
async fn main() {
let mut website = Website::new("https://example.com");
let mut rx = website.subscribe(16);
tokio::spawn(async move {
while let Ok(page) = rx.recv().await {
println!("{} {}", page.status_code, page.get_url());
}
});
website.crawl().await;
website.unsubscribe();
}
페이지는 가져오는 대로 스트리밍됩니다. 크롤러는 링크를 찾아 설정한 제한 내에서 작동하며 스스로 중지합니다.
Spider는 HTTP를 우선으로 실행하며, 페이지에 JavaScript가 필요할 때만 헤드리스 Chrome을 실행합니다. HTTP 경로와 Chrome 경로 모두 스트리밍되므로, 페이지는 마지막에 일괄 처리되는 것이 아니라 가져오는 즉시 반환됩니다. 동일한 API가 하나의 비동기 작업이나 분산 워커 클러스터를 구동하며, 그 사이에서 동시성 모델은 동일하게 유지됩니다. 프록시, 재시도, 속도 제한, 스틸스 기능이 내장되어 있습니다.
| 원하는 것 | 실행 명령어 |
|---|---|
| Rust 라이브러리 | cargo add spider |
| 명령줄 도구 | cargo install spider_cli |
| Node.js 패키지 | npm i @spider-rs/spider-rs |
| Python 패키지 | pip install spider_rs |
| MCP 서버 (Claude, Cursor 등) | cargo install spider_mcp |
| 관리형 크롤링 | spider.cloud |
모든 옵션에는 합리적인 기본값이 있으므로, 필요한 항목만 설정하면 됩니다.
let mut website = Website::new("https://example.com")
.with_limit(50) // 동시 요청 수
.with_depth(10) // 링크 추적 깊이
.with_delay(500) // 요청 간 대기 시간 (ms)
.with_respect_robots_txt(true)
.with_subdomains(true)
.with_user_agent(Some("MyBot/1.0"))
.with_stealth(true)
.build()
.unwrap();
전체 참조는 Configuration 문서에서 확인하세요.
JavaScript 의존도가 높은 사이트의 경우 features = ["chrome"]를 활성화하고 crawl_smart()를 호출하세요. Spider는 먼저 HTTP를 시도하며, JavaScript가 필요한 페이지에만 Chrome을 실행합니다.
팀들은 Spider를 사용하여 오픈 웹 데이터를 LLM 및 RAG 파이프라인용 벡터 저장소에 공급하고, SEO 및 가격 변경을 모니터링하며, 페이지를 Markdown, JSON 또는 WARC 형식으로 내보내고, AI 브라우징 에이전트를 위해 헤드리스 Chrome을 구동합니다. 시작할 수 있는 50개 이상의 실행 가능한 예제가 준비되어 있습니다.
PR은 언제든지 환영합니다. CONTRIBUTING.md를 참조하세요.
cargo test -p spider # 단위 테스트
RUN_LIVE_TESTS=1 cargo test # 실제 네트워크 테스트
MIT.