
Ottieni dati web per agenti AI e LLM
Il più veloce crawler e scraper web per Rust.
Spider è un motore di crawling orientato alla concorrenza scritto in Rust. Trasmette le pagine man mano che arrivano, esegue il rendering del JavaScript solo sulle pagine che lo richiedono e scala da uno script singolo a una flotta distribuita senza modificare il tuo codice. Lo stesso motore alimenta Spider Cloud, quindi puoi fare prototipi in locale e passare a un'infrastruttura gestita con una sola modifica alla configurazione.
La parte più difficile dello scraping su larga scala non è il codice. Sono i proxy, i browser headless e la costante rotazione IP necessaria per i sistemi anti-bot. Spider Cloud gestisce tutto questo per te dietro la stessa API.
Ottieni una chiave API gratuita → (nessuna carta richiesta)
[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()?;
La modalità Smart instrada prima attraverso i proxy ed effettua un upgrade verso uno /scrape stealth solo sulle pagine che oppongono resistenza, così paghi l'elusione solo dove è necessario.
Nessuna chiave, nessun servizio. Solo il 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();
}
Le pagine vengono trasmesse man mano che vengono recuperate. Il crawler trova i link, rispetta i limiti impostati e si ferma autonomamente.
Spider opera prima via HTTP e avvia Chrome headless solo quando una pagina richiede JavaScript. Sia il percorso HTTP che quello Chrome trasmettono i dati, quindi le pagine tornano man mano che vengono recuperate invece di essere accodate alla fine. La stessa API gestisce un singolo task asincrono o una flotta di worker distribuiti, e il modello di concorrenza non cambia tra i due. Proxy, ritentativi, limitazione della velocità e modalità stealth sono integrati.
| Ti serve… | Esegui |
|---|---|
| Libreria Rust | cargo add spider |
| Strumento da riga di comando | cargo install spider_cli |
| Pacchetto Node.js | npm i @spider-rs/spider-rs |
| Pacchetto Python | pip install spider_rs |
| Server MCP (Claude, Cursor, …) | cargo install spider_mcp |
| Crawling gestito | spider.cloud |
Ogni opzione ha un valore predefinito ragionevole, quindi imposta solo ciò che ti serve.
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();
Riferimento completo nella documentazione di Configuration.
Per siti pesanti di JavaScript, abilita features = ["chrome"] e chiama crawl_smart(). Spider prova prima HTTP e avvia Chrome solo sulle pagine che lo richiedono.
I team utilizzano Spider per alimentare archivi vettoriali per pipeline LLM e RAG con il web aperto, monitorare siti per cambiamenti SEO e di prezzo, esportare pagine in Markdown, JSON o WARC e guidare Chrome headless per agenti di navigazione AI. Ci sono oltre 50 esempi eseguibili da cui partire.
Pull request benvenute. Vedi CONTRIBUTING.md.
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.