Rust 语言中最快的网络爬虫与抓取工具。
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, 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 格式,并驱动无头 Chrome 为 AI 浏览代理提供支持。这里有 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 |