Rust headless_chrome: definir as credenciais do proxy HTTP antes da navegação
Escolha o proxy HTTP ao iniciar o navegador e ative a autenticação Fetch na aba headless_chrome antes da navegação.
No crate Rust headless_chrome, a configuração de inicialização do navegador seleciona um intermediário HTTP. O manipulador Fetch da aba fornece a conta quando o 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 função envolvente propaga os erros, e proxy_user e proxy_password são valores String provenientes da configuração de conta existente da aplicação. Configure a autenticação antes que a navegação possa acionar o desafio.
O segundo argumento de enable_fetch ativa os eventos de autenticação. O Chromium não trata as informações de usuário incorporadas em --proxy-server como essa troca de credenciais.
Mantenha o navegador e a aba vivos durante o trabalho. Se também houver uma interceptação Fetch personalizada instalada, defina quem continua as solicitações pausadas e quem responde aos desafios; uma solicitação pausada sem solução pode travar a navegação.
Esta configuração simples de autenticação na aba pressupõe o desafio de proxy previsto. Um fluxo com autenticação de outra origem precisa de delimitação explícita do desafio em vez de reutilizar a conta do intermediário para cada servidor. A limitação do Chromium no SOCKS5 para usuário e senha também é separada deste caminho de autenticação HTTP.