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-аўтэнтыфікацыі.