Expand description
JavaScript rendering adapter (headless browser via stygian-browser) JavaScript rendering adapter using stygian-browser
Implements the ScrapingService port using a headless browser (via the
stygian-browser crate) for pages that require JavaScript execution.
Features:
- Full JS execution via Chrome DevTools Protocol
- Configurable wait strategies (DOM ready, network idle, selector)
- Stealth mode via stygian-browser’s anti-detection features
- Graceful fallback to HTTP when browser pool is unavailable
- Circuit-breaker friendly: propagates pool-exhaustion as service errors
§Example
use stygian_graph::adapters::browser::{BrowserAdapter, BrowserAdapterConfig};
use stygian_graph::ports::{ScrapingService, ServiceInput};
use serde_json::json;
let config = BrowserAdapterConfig::default();
let adapter = BrowserAdapter::with_config(config);
let input = ServiceInput {
url: "https://example.com".to_string(),
params: json!({ "wait_strategy": "dom_content_loaded", "timeout_ms": 30000 }),
};
// let result = adapter.execute(input).await.unwrap();Structs§
- Browser
Adapter - Browser-based scraping adapter
- Browser
Adapter Config - Configuration for the
BrowserAdapter
Enums§
- Stealth
Level - Stealth level for browser automation
- Wait
Strategy - Wait strategy for JavaScript-rendered pages