No crate Rust headless_chrome, a configuración de inicio do navegador selecciona un intermediario HTTP. O xestor Fetch da pestana fornece a conta cando Chromium a solicita:

let proxy = "http://proxy.example:8080";
let options = headless_chrome::LaunchOptions::default_builder()
    .proxy_server(Some(proxy))
    .build()?;
let browser = headless_chrome::Browser::new(options)?;
let tab = browser.new_tab()?;

tab.enable_fetch(None, Some(true))?;
tab.authenticate(Some(proxy_user), Some(proxy_password))?;
tab.navigate_to("https://www.example.org/")?;
tab.wait_until_navigated()?;

A función circundante propaga os erros, e proxy_user e proxy_password son valores String que proveñen da configuración de conta existente da aplicación. Configura a autenticación antes de que a navegación poida desencadear o desafío.

O segundo argumento de enable_fetch activa os eventos de autenticación. Chromium non trata a información de usuario incorporada en --proxy-server como este intercambio de credenciais.

Mantén vivos o navegador e a pestana durante o traballo. Se ademais hai instalada unha interceptación Fetch propia, define quen continúa as solicitudes en pausa e quen responde aos desafíos; unha solicitude en pausa sen resolver pode bloquear a navegación.

Esta configuración sinxela de autenticación na pestana supón o desafío de proxy previsto. Un fluxo con autenticación doutro origen necesita delimitar o desafío de forma explícita en vez de reutilizar a conta do intermediario para cada servidor. A limitación de Chromium en SOCKS5 para usuario e contrasinal tamén é independente desta ruta de autenticación HTTP.

Artigos relacionados