
AI एजेंटों और LLM के लिए वेब डेटा प्राप्त करें
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-फर्स्ट पर चलता है और केवल तभी हेडलेस Chrome लॉन्च करता है जब किसी पेज को JavaScript की आवश्यकता हो। 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 के रूप में एक्सपोर्ट करने, और AI ब्राउज़िंग एजेंट्स के लिए हेडलेस Chrome को संचालित करने के लिए करती हैं। शुरू करने के लिए 50+ रन करने योग्य उदाहरण उपलब्ध हैं।
PRs स्वागतयोग्य हैं। CONTRIBUTING.md देखें।
cargo test -p spider # unit tests
RUN_LIVE_TESTS=1 cargo test # live network tests
MIT.