
Get web data for AI agents and LLMs
Самый быстрый веб-краулер и скрейпер на Rust.
Spider — это движок краулинга, созданный на Rust с приоритетом конкурентности. Он передаёт страницы сразу по мере поступления, запускает JavaScript только когда страница действительно в нём нуждается, и масштабируется от одного скрипта до распределённого парка без изменения кода. Тот же движок работает в Spider Cloud, поэтому вы можете прототипировать локально и перейти на управляемую инфраструктуру одной сменой конфига.
Самая сложная часть масштабного краулинга — не код. Это прокси, headless-браузеры и постоянная борьба с анти-бот системами. 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); // по умолчанию прокси, автоматическое разблокирование при блокировке
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 в первую очередь и запускает headless Chrome только когда странице действительно нужен JavaScript. Потоковая передача встроена как в HTTP, так и в Chrome-пути, поэтому страницы возвращаются сразу после получения, а не пакетно в конце. Такая архитектура обеспечивает наилучшую пропускную способность конкурентности, выдерживая чрезвычайно высокие объёмы запросов, которые масштабируются от одной асинхронной задачи до распределённого парка рабочих процессов на том же API. Прокси, повторы, ограничение скорости и скрытность встроены.
У каждой опции есть разумное значение по умолчанию, поэтому задавайте только то, что нужно.
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();
Полная справка в документации Configuration.
Для сайтов с тяжёлым JavaScript включите features = ["chrome"] и вызывайте crawl_smart(). Spider сначала пробует HTTP и запускает Chrome только на страницах, которым это нужно.
Команды используют Spider для загрузки открытого веба в векторные хранилища для LLM- и RAG-пайплайнов, мониторинга сайтов на предмет SEO и изменения цен, экспорта страниц в Markdown, JSON или WARC, а также для управления headless Chrome для AI-агентов просмотра. Доступно 50+ исполняемых примеров, с которых можно начать.
PR приветствуются. Смотрите CONTRIBUTING.md.
cargo test -p spider # модульные тесты
RUN_LIVE_TESTS=1 cargo test # живые сетевые тесты
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 |