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 allocCtx থেকে allocator উত্তরাধিকার করে। অন্য parent থেকে তৈরি context ওই অপশন ছাড়াই ভিন্ন ব্রাউজার তৈরি করতে পারে।

proxy URL একটি HTTP listener চিহ্নিত করে; সর্বজনীন প্রার্থীরা HTTP proxy তালিকায় পাওয়া যায়; পৃষ্ঠাটি HTTPS গন্তব্যই থাকে। ProxyServer Chromium-এর --proxy-server ফ্ল্যাগে ম্যাপ করে, Go-র net/http proxy কনফিগারেশনে নয়।

Chromium হাতে দেওয়া proxy URL-এ এমবেড করা username/password গ্রহণ করে না। একটি প্রমাণিত endpoint-এর জন্য সমর্থিত ব্রাউজার প্রমাণীকরণ বা মধ্যস্থ ব্যবস্থা দরকার; এই ফ্ল্যাগে user:password যোগ করা HTTP client URL প্রমাণীকরণের সমতুল্য নয়। Chrome-এর CDP প্রমাণীকরণ ইভেন্ট প্রবাহ অভীষ্ট proxy চ্যালেঞ্জ মোকাবিলার একটি সমর্থিত পথ।

ব্রাউজারের কাজ শেষ না হওয়া পর্যন্ত allocator সচল রাখুন। এর বাতিলও প্রসেস পরিষ্কারের অংশ, আর tab বাতিল সংশ্লিষ্ট ব্রাউজার context-এর পরিধি নির্ধারণ করে।

সম্পর্কিত নিবন্ধ