Module browser

Module browser 

Source
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§

BrowserAdapter
Browser-based scraping adapter
BrowserAdapterConfig
Configuration for the BrowserAdapter

Enums§

StealthLevel
Stealth level for browser automation
WaitStrategy
Wait strategy for JavaScript-rendered pages