项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2839
使用教程
环境要求
- 已安装 Rust 与 Cargo(使用 cargo add / cargo install 方式时必需)
- 已安装 Node.js 与 npm(安装 Node.js 包时需要)
- 已安装 Python 与 pip(安装 Python 包时需要)
- 抓取 JavaScript 渲染页面时,本机需可用 Chrome
- 使用 spider.cloud 托管爬取时需自备服务与密钥(本地运行不需要)
安装与启动步骤
-
1添加 Rust 库依赖
在 Rust 项目根目录执行,把 spider 作为依赖写入 Cargo.toml,自动选用 2.x 版本。
cargo add spider -
2编写最小爬虫示例
把代码写入项目源文件(如 main.rs),它会在页面到达时流式打印状态码和 URL,抓完自行停止。
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(); } -
3按需调整抓取配置
所有配置项都有默认值,只设置需要的:限制并发、链接深度、请求间隔、robots、子域名、UA 与反检测。
let mut website = Website::new("https://example.com") .with_limit(50) .with_depth(10) .with_delay(500) .with_respect_robots_txt(true) .with_subdomains(true) .with_user_agent(Some("MyBot/1.0")) .with_stealth(true) .build() .unwrap(); -
4安装命令行工具
不写代码、直接在终端抓取时使用,安装后即可作为命令行工具运行。
cargo install spider_cli -
5安装 Python 包
Python 项目里通过 pip 安装官方包,包名与 crate 名不同,注意是下划线形式。
pip install spider_rs -
6安装 Node.js 包
Node.js 项目里通过 npm 安装官方包,安装后按 README 示例调用即可。
npm i @spider-rs/spider-rs -
7安装 MCP 服务
想让 Claude、Cursor 等 MCP 客户端直接调用爬虫时安装该二进制,随后在客户端中配置。
cargo install spider_mcp
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
limit | 否 | 并发请求数量上限,用于控制抓取压力 | 50 |
depth | 否 | 跟随链接的最大深度 | 10 |
delay | 否 | 请求之间的暂停间隔,单位毫秒 | 500 |
respect_robots_txt | 否 | 是否遵守目标站点的 robots.txt | true |
user_agent | 否 | 请求使用的 User-Agent 标识 | MyBot/1.0 |
stealth | 否 | 开启反检测/隐藏特征,降低被封风险 | true |
如何确认成功
运行示例后,终端会按到达顺序持续打印每个页面的状态码和 URL,且抓取结束后程序自行退出,即表示成功。
常见问题
Q:本地运行需要 API 密钥或注册服务吗?
A:不需要。README 明确说明本地运行无需密钥、无需服务,只有使用 spider.cloud 托管爬取时才涉及账号与密钥。
Q:抓不到 JavaScript 渲染的页面怎么办?
A:在 Cargo.toml 中启用 features = ["chrome"] 并调用 crawl_smart()。Spider 会先尝试 HTTP,只对确实需要的页面启动 Chrome。
Q:Rust、Python、Node.js 该装哪个?
A:按你的技术栈选一个即可:Rust 用 cargo add spider,命令行用 cargo install spider_cli,Python 用 pip install spider_rs,Node.js 用 npm i @spider-rs/spider-rs。
Q:如何避免爬得太快被目标站限制?
A:调小 with_limit、调大 with_delay,并开启 with_respect_robots_txt(true) 与 with_stealth(true),配置项均有默认值可按需覆盖。
注意事项
- 项目处于成长阶段,API 与功能迭代较快,升级前建议先看对应版本的文档。
- with_delay 的单位是毫秒,不要按秒填写。
- 本地只需把 spider 作为依赖引入即可,无需任何云端服务或密钥。
- README 未给出 Windows 专用安装命令,Rust 相关命令在 Windows 上同样通过 cargo 执行。
核心亮点
- Rust 实现,性能高且内存安全,适合高并发抓取
- 内置 headless Chrome 支持,能处理 JavaScript 渲染的现代网页
- 提供 Markdown/JSON 输出,直接适配 LLM 上下文
不足之处
- 项目较新,API 可能不稳定,文档尚不完善
- 高级功能(如分布式抓取)需依赖外部服务或自行扩展
适用场景
- 为 RAG 系统抓取网页知识库
- 自动化采集竞品数据供 AI 分析
- 构建实时数据管道供智能体调用
替代项目
Scrapy、Playwright、Firecrawl
上一篇:camofox-browser
下一篇:hacker-podcast
同类项目推荐
self-hosted
开源
自托管搭内部工具,低代码配流程一键部署
Internal tools and workflow automations
Prism-Browser-Community
开源
一台电脑隔离多个浏览器身份,多账号运营不串号
Local-first open-source multi-profile fingerprint browser based on Chromium and Elec···
banco
开源
在终端里管项目,告别切来切去的 GUI
:file_folder: A project management tool for the command line
agentic_coding_flywheel_setup
开源
30分钟把空VPS变成多智能体开发环境
Bootstraps a fresh Ubuntu VPS into a complete multi-agent AI development environment···
Automatic-Youtube-Reddit-Text-To···
开源
Reddit热帖一键变YouTube视频,全自动发布
A series of 3 programs that will automatically receive scripts from Reddit, allow th···
wemac
开源
Mac 上即装即用的微信群聊机器人,自动回复不封号
一个 it just works 的 Mac 版微信 RPA 群聊机器人
libretto
开源
让AI驱动的浏览器自动化更可靠,告别脚本脆弱易碎
The AI toolkit for building reliable browser automations
jev-social
开源
本地跑社媒调研,自动抓证据出结论
Open-source, local-first social media research agent for Instagram, TikTok, and Link···
Reminal
开源
合盖走人,浏览器里实时看所有桌面和终端
Close the lid and walk away — every window, desktop and terminal on your machines, ···
