Rust向け最速のWebクローラー兼スクレイパー。
Spiderは、Rustで構築された並行性優先のクローリングエンジンです。ページが到着した瞬間にストリーミングし、ページが必要とする場合にのみJavaScriptをレンダリングし、コードを変更せずに単一のスクリプトから分散型フリートまでスケールします。同じエンジンがSpider Cloudを支えているため、ローカルでプロトタイプを作成し、1つの設定変更で管理されたインフラに移行できます。
大規模なクローリングの最も難しい部分はコードではありません。それはプロキシ、ヘッドレスブラウザ、そして絶え間ないアンチボットの移行です。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, auto-unblock when blocked
let mut website = Website::new("https://example.com")
.with_spider_cloud_config(cloud)
.build()?;
Smart モードはまずプロキシ経由でルーティングし、抵抗するページでのみアンブロッカーにエスカレーションするため、必要なときだけバイパスに支払い、不要なときは支払いません。
キー不要、サービス不要。クローラーだけです。
[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で非常に高いリクエスト量を維持できます。プロキシ、リトライ、レート制限、ステルスが組み込まれています。
すべてのオプションには適切なデフォルト値があるため、必要なものだけを設定してください。
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を起動します。
チームはSpiderを使用して、オープンウェブをLLMやRAGパイプラインのベクターストアにフィードしたり、SEOや価格変更のためにサイトを監視したり、ページをMarkdown、JSON、またはWARCとしてエクスポートしたり、AIブラウジングエージェントのためにヘッドレスChromeを駆動したりしています。開始するための50以上の実行可能な例があります。
PRを歓迎します。CONTRIBUTING.mdをご覧ください。
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT。
| 必要なもの | 実行方法 |
|---|
| 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 |