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 लिसनर की पहचान करता है; सार्वजनिक उम्मीदवार HTTP proxy सूची में उपलब्ध हैं; पेज HTTPS गंतव्य ही रहता है। ProxyServer Chromium के --proxy-server फ़्लैग पर मैप होता है, Go के net/http proxy कॉन्फ़िगरेशन पर नहीं।

Chromium मैन्युअल proxy URL में एम्बेड किया गया username/password स्वीकार नहीं करता। प्रमाणित endpoint के लिए समर्थित ब्राउज़र प्रमाणीकरण या मध्यस्थ व्यवस्था चाहिए; इस फ़्लैग में user:password जोड़ना HTTP क्लाइंट URL प्रमाणीकरण के बराबर नहीं है। Chrome का CDP प्रमाणीकरण इवेंट प्रवाह इच्छित proxy चुनौती संभालने का एक समर्थित रास्ता है।

allocator को तब तक जीवित रखें जब तक ब्राउज़र का काम पूरा न हो जाए। इसका रद्द होना भी प्रक्रिया-सफ़ाई का हिस्सा है, जबकि tab रद्द करना संबंधित ब्राउज़र context को सीमित करता है।

संबंधित लेख