scrape_to_markdown/
scrape_to_markdown.rs1use anyhow::Result;
2use headless_engine::browser::tab::BrowserTab;
3use headless_engine::network::fingerprint::DeviceProfile;
4
5#[tokio::main]
6async fn main() -> Result<()> {
7 println!(">>> Launching Headless Engine Tab with Windows Chrome profile...");
8 let mut tab = BrowserTab::with_profile(DeviceProfile::ChromeWindows)?;
9
10 let url = "https://en.wikipedia.org/wiki/Rust_(programming_language)";
11 println!(">>> Navigating to: {}", url);
12 let report = tab.navigate(url).await?;
13
14 println!(">>> Page Title: {}", report.page_title);
15 println!(">>> Raw HTML Size: {} bytes", report.html_bytes);
16
17 let markdown = tab.extract_markdown(None).unwrap_or_default();
18 println!(
19 ">>> Markdown Size: {} bytes (~{:.1}% compression)",
20 markdown.len(),
21 (1.0 - (markdown.len() as f64 / report.html_bytes as f64)) * 100.0
22 );
23
24 println!("\n--- MARKDOWN PREVIEW (First 600 chars) ---\n");
25 let preview: String = markdown.chars().take(600).collect();
26 println!("{}", preview);
27 println!("\n-------------------------------------------");
28
29 Ok(())
30}