تنظیم ProxyServer در chromedp روی ExecAllocator
زمینهٔ مرورگر را از ExecAllocator حامل ProxyServer بسازید تا فرایند Chromium موردنظر پرچم پروکسی خود را دریافت کند.
chromedp.ProxyServer یک گزینهٔ راهاندازی مرورگر است. آن را روی allocator ای اعمال کنید که فرایند Chromium را میسازد:
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.ProxyServer("http://proxy.example:8080"),
)
allocCtx, cancelAllocator := chromedp.NewExecAllocator(
context.Background(), opts...,
)
defer cancelAllocator()
tabCtx, cancelTab := chromedp.NewContext(allocCtx)
defer cancelTab()
err := chromedp.Run(tabCtx,
chromedp.Navigate("https://www.example.com/"),
)
کد باید در تابع موجود برنامه قرار گیرد، با مدیریت خطای معمول برای err. NewContext مقدار allocator را از allocCtx به ارث میبرد. زمینهای که از والد دیگری ساخته شود میتواند بدون این گزینه مرورگر دیگری بسازد.
نشانی پروکسی یک شنوندهٔ HTTP را مشخص میکند؛ نامزدهای عمومی در فهرست پروکسی HTTP موجود است؛ صفحه همچنان مقصد HTTPS باقی میماند. ProxyServer به پرچم --proxy-server کرومیوم نگاشت میشود، نه به پیکربندی پروکسی net/http در Go.
کرومیوم نام کاربری و گذرواژهٔ تعبیهشده در نشانی پروکسی دستی را نمیپذیرد. یک نقطهٔ پایانی احراز هویتشده به احراز هویت پشتیبانیشدهٔ مرورگر یا ترتیبی واسط نیاز دارد؛ افزودن user:password به این پرچم معادل احراز هویت نشانی در کلاینت HTTP نیست. جریان رویدادهای احراز هویت CDP در کروم یکی از مسیرهای پشتیبانیشده برای رسیدگی به چالش پروکسی موردنظر است.
allocator را تا پایان کار مرورگر زنده نگه دارید. لغو آن هم بخشی از پاکسازی فرایند است، در حالی که لغو برگه دامنهٔ زمینهٔ مرورگر مرتبط را محدود میکند.