در crate راست به نام 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 سفارشی هم نصب شده است، تعیین کنید چه کسی درخواست‌های متوقف‌شده را ادامه می‌دهد و چه کسی به چالش‌ها پاسخ می‌دهد؛ رها کردن یک درخواست متوقف‌شده و حل‌نشده می‌تواند ناوبری را متوقف کند.

این راه‌اندازی ساده احراز هویت تب، چالش موردنظر پروکسی را فرض می‌کند. جریان کاری با احراز هویت مبدأ نامرتبط به محدوده‌بندی صریح چالش نیاز دارد، نه استفاده مجدد از حساب واسط برای هر سرور. محدودیت SOCKS5 کروم برای نام کاربری و گذرواژه نیز از این مسیر احراز هویت HTTP جداست.

مقالات مرتبط