Rust headless_chrome: নেভিগেশনের আগে HTTP প্রক্সি শংসাপত্র সেট করুন
ব্রাউজার চালু করার সময় HTTP প্রক্সি বাছুন এবং নেভিগেশনের আগে headless_chrome ট্যাবে Fetch প্রমাণীকরণ চালু করুন।
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 প্রমাণীকরণ পথ থেকে আলাদা।