
Obtenez des données web pour les agents IA et les LLM
Le moteur de crawl et de scraping web le plus rapide pour Rust.
Spider est un moteur de crawl conçu prioritairement pour la concurrence, écrit en Rust. Il diffuse les pages à mesure qu'elles arrivent, exécute le JavaScript uniquement sur les pages qui en ont besoin, et passe d'un simple script à une flotte distribuée sans modifier votre code. Le même moteur alimente Spider Cloud, vous permettant ainsi de prototyper localement et de passer à une infrastructure gérée avec un seul changement de configuration.
La partie la plus difficile du crawl à grande échelle n'est pas le code. Ce sont les proxys, les navigateurs headless et la rotation constante des protections anti-bot. Spider Cloud gère tout cela pour vous derrière la même API.
Obtenir une clé API gratuite → (aucune carte bancaire requise)
[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()?;
Le mode Smart route d'abord via des proxys et passe à un /scrape furtif uniquement sur les pages qui résistent, afin que vous ne payiez le contournement que là où c'est nécessaire.
Pas de clé, pas de service. Juste le 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();
}
Les pages arrivent en flux continu au fur et à mesure de leur récupération. Le crawler trouve les liens, respecte les limites que vous définissez et s'arrête automatiquement.
Spider privilégie HTTP et lance Chrome headless uniquement lorsqu'une page nécessite du JavaScript. Les deux chemins (HTTP et Chrome) fonctionnent en streaming, donc les pages reviennent au fur et à mesure de leur récupération plutôt que d'être regroupées à la fin. La même API pilote une seule tâche asynchrone ou une flotte de travailleurs distribués, et le modèle de concurrence reste identique entre les deux. Les proxys, les tentatives de reconnexion, la limitation de débit et le mode furtif sont intégrés nativement.
| Vous souhaitez… | Exécuter |
|---|---|
| Bibliothèque Rust | cargo add spider |
| Outil en ligne de commande | cargo install spider_cli |
| Package Node.js | npm i @spider-rs/spider-rs |
| Package Python | pip install spider_rs |
| Serveur MCP (Claude, Cursor, …) | cargo install spider_mcp |
| Crawl managé | spider.cloud |
Chaque option possède une valeur par défaut cohérente, définissez donc uniquement ce dont vous avez besoin.
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();
Référence complète dans la documentation Configuration.
Pour les sites très dépendants du JavaScript, activez features = ["chrome"] et appelez crawl_smart(). Spider essaie d'abord HTTP et ne lance Chrome que sur les pages qui en ont besoin.
Les équipes utilisent Spider pour alimenter le web ouvert dans des bases vectorielles destinées aux pipelines LLM et RAG, surveiller des sites pour le SEO et les changements de prix, exporter des pages en Markdown, JSON ou WARC, et piloter Chrome headless pour des agents de navigation IA. Plus de 50 exemples exécutables sont disponibles pour démarrer.
Les PRs sont les bienvenues. Consultez CONTRIBUTING.md.
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.