Rust-cratessa headless_chrome selaimen käynnistysasetus valitsee HTTP-välittäjän. Välilehden Fetch-käsittelijä toimittaa tilin, kun Chromium pyytää sitä:

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()?;

Ympäröivä funktio välittää virheet, ja proxy_user ja proxy_password ovat String-arvoja sovelluksen olemassa olevasta tilimäärityksestä. Määritä todennus ennen kuin navigointi voi laukaista haasteen.

enable_fetch-funktion toinen argumentti ottaa todennustapahtumat käyttöön. Chromium ei pidä --proxy-server-asetukseen upotettuja käyttäjätietoja tänä tunnusten vaihtona.

Pidä selain ja välilehti elossa työn ajan. Jos myös oma Fetch-sieppaus on asennettu, määritä, kuka jatkaa keskeytettyjä pyyntöjä ja vastaa haasteisiin; ratkaisematta jäänyt keskeytetty pyyntö voi pysäyttää navigoinnin.

Tämä yksinkertainen välilehden todennus olettaa aiom välityspalvelimen haasteen. Työnkulku, jossa on muun originin todennus, tarvitsee haasteen eksplisiittisen rajauksen sen sijaan, että välittäjän tiliä käytetään uudelleen jokaiselle palvelimelle. Chromiumin SOCKS5-rajoitus käyttäjätunnukselle ja salasanalle on myös erillään tästä HTTP-todennuspolusta.

Aiheeseen liittyvät artikkelit