Rust headless_chrome: задайте облікові дані HTTP-проксі до переходу
Виберіть HTTP-проксі під час запуску браузера та ввімкніть автентифікацію Fetch на вкладці headless_chrome до переходу.
У Rust-крейті headless_chrome налаштування запуску браузера вибирає HTTP-посередника. Обробник Fetch вкладки надає обліковий запис, коли Chromium його запитує:
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()?;Зовнішня функція передає помилки, а proxy_user і proxy_password — це значення String з наявної конфігурації облікового запису застосунку. Налаштуйте автентифікацію до того, як перехід спричинить запит.
Другий аргумент enable_fetch вмикає події автентифікації. Chromium не розглядає відомості про користувача в --proxy-server як цей обмін обліковими даними.
Тримайте браузер і вкладку живими протягом роботи. Якщо також встановлено власне перехоплення Fetch, визначте, хто продовжує призупинені запити і хто відповідає на запити автентифікації; невирішений призупинений запит може зупинити перехід.
Ця проста автентифікація на вкладці розрахована на передбачуваний запит проксі. Робочий процес з автентифікацією іншого origin потребує явного обмеження області запиту, а не повторного використання облікового запису посередника для кожного сервера. Обмеження Chromium у SOCKS5 щодо імені користувача й пароля також відокремлене від цього шляху HTTP-автентифікації.