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 ਨੂੰ ਸੀਮਿਤ ਕਰਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ