Features
A complete overview of Crawlingo's capabilities — from self-healing DOM selectors to AI-ready dataset export.
Self-Healing DOM Fingerprinting
When websites redesign their HTML — renaming CSS classes, restructuring divs, renumbering IDs — traditional scrapers break silently. Crawlingo solves this by caching element layout fingerprints and using similarity matching to self-heal drifted selectors on the fly, without any code changes from you.
Auto-Match Lifecycle
Stealth Browser Impersonation
Crawlingo compiles a raw HTTP/2 client inside the Rust core that rotates JA3/TLS handshake fingerprints, user-agent headers, and request timing gaps — bypassing Cloudflare Turnstile and similar bot detection systems without a headless browser.
Ethical use
robots.txt, Terms of Service, and applicable laws. Crawlingo's stealth features are intended for legitimate data collection, research, and testing.SIMD-Accelerated Text Anchors
Many websites lack meaningful CSS classes or IDs. Text anchor selectors let you locate elements by their visible content — using memchr SIMD instructions for 2.1M ops/s throughput, making it faster than CSS selectors on large DOMs.
| Type | API | Speed | Best For |
|---|---|---|---|
| CSS | page.css("h1") | 850K/s | Standard element targeting |
| XPath | page.xpath("//p") | 310K/s | Complex DOM traversal |
| Regex | page.regex(r"\$[\d.]+") | 1.2M/s | Pattern-based extraction |
| Text Anchor | page.find_text("Price:") | 2.1M/s | Visible content lookup |
| After/Before | page.after_text("Price:") | 1.8M/s | Table/sibling extraction |
Reactive Watch Monitors
Watch polls target DOM nodes on configurable intervals, instantly publishing typed callbacks or webhooks when content, prices, stock status, or element presence changes.
Structured Dataset Export
The Dataset builder extracts multiple fields in one pass and exports them directly to JSON, CSV, or Parquet.
.to_json("file.json").to_csv("file.csv").to_parquet("file.parquet")