Rust 向けの最速の Web クローラーおよびスクレイパー。
Spider は、Rust で書かれた並行処理を第一に設計されたクローリングエンジンです。ページが到着するたびにストリーミングし、JavaScript のレンダリングは必要なページのみに行い、コードを変更せずに単一スクリプトから分散クラスタへスケールします。同じエンジンが Spider Cloud で稼働しているため、ローカルでプロトタイピングを行い、設定変更一つでマネージドインフラへ移行できます。
大規模なクロールにおいて最も難しい部分はコードではありません。それはプロキシ、ヘッドレスブラウザ、そして頻繁なアンチボット対策の変更です。Spider Cloud は、同じ API の背後でそれらすべてをあなたに代わって実行します。
無料の API キーを取得 → (カード不要)
[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()?;
Smart モードではまずプロキシ経由でルーティングし、反撃してくるページに対してのみステルス /scrape にエスカレーションするため、必要な箇所にのみバイパス料金を支払うだけで済みます。
キー不要、サービス不要。クローラーのみ。
[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();
}
ページは取得されるたびにストリーミングされます。クローラーはリンクを検出し、設定した制限内に留まり、自動的に停止します。
Spider は HTTP を優先して実行し、ページが JavaScript を必要とする場合のみヘッドレス Chrome を起動します。HTTP パスと Chrome パスの両方がストリーミングするため、ページは最後にバッチ処理されるのではなく、取得されるたびに返されます。同じ API が 1 つの非同期タスクまたは分散ワーカーフリートを駆動し、その間の並行処理モデルは変化しません。プロキシ、リトライ、レート制限、ステルス機能は組み込まれています。
| 目的 | コマンド |
|---|---|
| Rust ライブラリ | cargo add spider |
| コマンドラインツール | cargo install spider_cli |
| Node.js パッケージ | npm i @spider-rs/spider-rs |
| Python パッケージ | pip install spider_rs |
| MCP サーバー(Claude、Cursor など) | cargo install spider_mcp |
| マネージドクロール | spider.cloud |
すべてのオプションには適切なデフォルト値が設定されているため、必要なものだけを設定してください。
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();
詳細は Configuration ドキュメント を参照してください。
JavaScript を多用するサイトの場合、features = ["chrome"] を有効にして crawl_smart() を呼び出してください。Spider はまず HTTP を試行し、必要なページに対してのみ Chrome を起動します。
チームは、LLM および RAG パイプライン用にベクターストアへオープンウェブデータを供給したり、SEO や価格変動を監視したり、ページを Markdown、JSON、または WARC としてエクスポートしたり、AI ブラウジングエージェントのためにヘッドレス Chrome を駆動するために Spider を使用しています。開始するための 50 以上の実行可能な例 が用意されています。
PR は歓迎されます。CONTRIBUTING.md を参照してください。
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT。