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, 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 既可驱动单个异步任务,也可驱动分布式工作节点集群,且两者之间的并发模型保持不变。代理、重试、速率限制和隐身功能均为内置。
| 你想要… | 运行 |
|---|---|
| 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。
团队使用 Spider 将开放网络内容送入向量存储,以支持 LLM 和 RAG 流水线;监控站点的 SEO 和价格变化;将页面导出为 Markdown、JSON 或 WARC;以及驱动无头 Chrome 用于 AI 浏览代理。有 50+ 个可运行示例 可供起步。
firewall 功能相同的阻止列表构建欢迎提交 PR。请参阅 CONTRIBUTING.md。
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT。