
Obtenha dados web para agentes de IA e LLMs
O rastreador e raspador web mais rápido para Rust.
O Spider é um mecanismo de rastreamento focado em concorrência, escrito em Rust. Ele transmite páginas conforme chegam, renderiza JavaScript apenas nas páginas que precisam dele e escala de um único script para uma frota distribuída sem alterar seu código. O mesmo motor executa o Spider Cloud, permitindo prototipar localmente e migrar para uma infraestrutura gerenciada com uma única alteração de configuração.
A parte mais difícil do rastreamento em escala não é o código. São os proxies, navegadores headless e a rotação constante de bloqueios anti-bot. O Spider Cloud gerencia 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, stealth scrape 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 um endpoint /scrape sigiloso apenas em páginas que resistem, então você paga pelo bypass apenas onde é necessário.
Sem chave, sem serviço. Apenas o rastreador.
[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 são transmitidas conforme são buscadas. O rastreador encontra os links, respeita os limites definidos por você e para automaticamente.
O Spider prioriza HTTP e inicia o Chrome headless apenas quando uma página precisa de JavaScript. Tanto o caminho HTTP quanto o do Chrome transmitem dados, então as páginas retornam conforme são buscadas, em vez de serem agrupadas no final. A mesma API controla uma única tarefa assíncrona ou uma frota de workers distribuídos, e o modelo de concorrência não muda entre eles. Proxies, retentativas, limitação de taxa e modo sigiloso estão integrados.
| Você deseja… | 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 |
| Rastreamento gerenciado | spider.cloud |
Cada opção possui um valor padrão adequado, portanto, defina apenas o que precisar.
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 de Configuration.
Para sites com muito JavaScript, habilite features = ["chrome"] e chame crawl_smart(). O Spider tenta HTTP primeiro e inicia o Chrome apenas nas páginas que precisam dele.
Equipes usam o Spider para alimentar bancos de vetores com a web aberta para pipelines de LLM e RAG, monitorar sites por mudanças de SEO e preços, exportar páginas como Markdown, JSON ou WARC, e controlar o Chrome headless para agentes de navegação por IA. Há mais de 50 exemplos executáveis para começar.
Pull requests são bem-vindos. Consulte CONTRIBUTING.md.
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.