
Get web data for AI agents and LLMs
O mais rápido crawler e scraper web para Rust.
Spider é um mecanismo de crawling focado em concorrência construído em Rust. Ele transmite páginas assim que chegam, renderiza JavaScript apenas quando uma página exige e escala de um único script a uma frota distribuída sem alterar seu código. O mesmo mecanismo alimenta o Spider Cloud, permitindo que você prototipe localmente e migre para infraestrutura gerenciada com uma única mudança de configuração.
A parte mais difícil do crawling em escala não é o código. São os proxies, navegadores headless e a constante rotação anti-bot. O Spider Cloud executa tudo isso para você por trás da mesma API.
Obtenha uma chave de API gratuita → (sem necessidade de cartão)
[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); // proxy by default, auto-unblock when blocked
let mut website = Website::new("https://example.com")
.with_spider_cloud_config(cloud)
.build()?;
O modo Smart roteia primeiro pelos proxies e escala para o desbloqueador apenas em páginas que reagem, para que você pague pelo bypass exatamente quando necessário e nunca quando não é.
Sem chave, sem serviço. Apenas o crawler.
[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();
}
As páginas chegam em streaming conforme são buscadas. O crawler descobre links, respeita limites e para por conta própria.
O Spider executa primeiro via HTTP e só inicia o Chrome headless quando uma página realmente precisa de JavaScript. O streaming está integrado tanto nos caminhos HTTP quanto no Chrome, para que as páginas retornem no momento em que são buscadas, em vez de serem acumuladas no final. Esse design oferece a melhor taxa de transferência de concorrência da categoria, sustentando volumes extremamente altos de requisições que escalam de uma única tarefa assíncrona a uma frota distribuída de workers na mesma API. Proxies, repetições, limitação de taxa e stealth são embutidos.
Cada opção tem um padrão sensato, então defina apenas o que você precisa.
let mut website = Website::new("https://example.com")
.with_limit(50) // concurrent requests
.with_depth(10) // how deep to follow links
.with_delay(500) // pause between requests (ms)
.with_respect_robots_txt(true)
.with_subdomains(true)
.with_user_agent(Some("MyBot/1.0"))
.with_stealth(true)
.build()
.unwrap();
Referência completa na documentação do Configuration.
Para sites com muito JavaScript, ative features = ["chrome"] e chame crawl_smart(). O Spider tenta HTTP primeiro e só inicia Chrome em páginas que precisam.
Equipes usam o Spider para alimentar a web aberta em armazenamentos vetoriais para pipelines de LLM e RAG, monitorar sites para SEO e mudanças de preços, exportar páginas como Markdown, JSON ou WARC, e dirigir Chrome headless para agentes de navegação de IA. Há 50+ exemplos executáveis para começar.
PRs são bem-vindos. Veja CONTRIBUTING.md.
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.
| Você quer… | Execute |
|---|
| Biblioteca Rust | cargo add spider |
| Ferramenta de linha de comando | cargo install spider_cli |
| Pacote Node.js | npm i @spider-rs/spider-rs |
| Pacote Python | pip install spider_rs |
| Servidor MCP (Claude, Cursor, …) | cargo install spider_mcp |
| Crawling gerenciado | spider.cloud |