
Webdaten für KI-Agenten und LLMs abrufen
Spider ist eine auf Nebenläufigkeit ausgelegte Crawling-Engine, die in Rust geschrieben ist. Sie streamt Seiten in dem Moment, in dem sie eintreffen, rendert JavaScript nur, wenn eine Seite es benötigt, und skaliert von einem einzelnen Skript zu einer verteilten Flotte, ohne dass du deinen Code ändern musst. Dieselbe Engine betreibt Spider Cloud, sodass du lokal prototypen und mit einer einzigen Konfigurationsänderung auf eine verwaltete Infrastruktur umsteigen kannst.
Das Schwierigste am Crawlen in großem Maßstab ist nicht der Code. Es sind die Proxies, die headless Browser und die ständige Anti-Bot-Dynamik. Spider Cloud erledigt das alles für dich hinter derselben API.
Einen kostenlosen API-Schlüssel erhalten → (keine Kreditkarte erforderlich)
[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()?;
Der Smart-Modus leitet Anfragen zuerst über Proxies und schaltet nur auf den Unblocker um, wenn sich Seiten gegen das Crawlen wehren. So zahlst du genau dann für die Umgehung, wenn sie nötig ist, und nie, wenn sie es nicht ist.
Kein Schlüssel, kein Dienst. Nur der 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();
}
Seiten werden gestreamt, sobald sie abgerufen werden. Der Crawler entdeckt Links, respektiert Grenzen und stoppt selbstständig.
Spider arbeitet zuerst mit HTTP und startet headless Chrome nur, wenn eine Seite tatsächlich JavaScript benötigt. Streaming ist sowohl in den HTTP- als auch in den Chrome-Pfad integriert, sodass Seiten sofort zurückfließen, sobald sie abgerufen werden, anstatt am Ende gebündelt zu werden. Dieses Design bietet einen branchenführenden Durchsatz bei gleichzeitigen Anfragen, der von einer einzelnen asynchronen Aufgabe bis zu einem verteilten Worker-Fleet mit derselben API skaliert. Proxies, Wiederholungen, Ratenbegrenzung und Tarnung sind integriert.
| Du möchtest… | Ausführen |
|---|---|
| Rust-Bibliothek | cargo add spider |
| Befehlszeilentool | cargo install spider_cli |
| Node.js-Paket | npm i @spider-rs/spider-rs |
| Python-Paket | pip install spider_rs |
| MCP-Server (Claude, Cursor, …) | cargo install spider_mcp |
| Managed Crawling | spider.cloud |
Jede Option hat eine sinnvolle Voreinstellung; setze daher nur, was du brauchst.
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();
Vollständige Referenz in der Configuration-Dokumentation.
Für stark JavaScript-lastige Seiten aktiviere features = ["chrome"] und rufe crawl_smart() auf. Spider versucht zuerst HTTP und startet Chrome nur auf Seiten, die es benötigen.
Teams nutzen Spider, um das offene Web in Vektor-Datenbanken für LLM- und RAG-Pipelines zu speisen, Websites auf SEO und Preisänderungen zu überwachen, Seiten als Markdown, JSON oder WARC zu exportieren und headless Chrome für KI-Browsing-Agenten zu steuern. Es gibt über 50 ausführbare Beispiele, um loszulegen.
PRs sind willkommen. Siehe CONTRIBUTING.md.
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.