په Colly کې د SetProxyFunc سره د پروکسي ګردي انتخاب
د ګردي انتخاب لپاره SetProxyFunc وکاروئ، د keep-alive، د transport د بدلون او د کلون شوي backend اغېزې په پام کې وساتئ.
collector := colly.NewCollector()
switcher, err := proxy.RoundRobinProxySwitcher(
"http://proxy-a.example:8080",
"http://proxy-b.example:8080",
)
if err != nil {
return err
}
collector.SetProxyFunc(switcher)
err = collector.Visit("https://www.example.com/")د اپلیکیشن په فنکشن کې github.com/gocolly/colly/v2 او د هغې proxy بنډل وکاروئ، د تېروتنو عادي سمبالښت وساتئ. انتخاب کوونکی هغه مخکې تنظیم کړئ چې غوښتنې یا غیرهمغږي لیدنې پیل شي. د HTTP پروکسي لیست د بدلوونکي د endpoint ننوتلو لپاره عامه نوماندان برابروي.
SetProxy یو ثابت endpoint ټاکي؛ SetProxyFunc HTTP transport ته اجازه ورکوي چې د هرې غوښتنې لپاره وټاکي. دا د هر OnRequest کال بیک دننه د شریک شوي تنظیماتو بدلولو څخه ډډه کوي.
په دې پلي کولو کې، SetProxyFunc DisableKeepAlives هم true ته ټاکي. دا یو موجود *http.Transport تازه کوي، خو بل ډول transport په نوي HTTP transport بدلوي. هر ډول دودیز د RoundTripper چلند په قصدي ډول وساتئ، پرځای د دې چې فکر وکړئ دا به پاتې شي.
Collector.Clone HTTP backend شریکوي، نو د کلون پروکسي بدلول کولی شي هغه شریک backend بدل کړي. د هممهاله کار مخکې مالکیت وټاکئ. ګردی انتخاب ورکړل شوي endpointونه څرخوي، نه تایید شوي عامه وتلو هویتونه یا په خپلواکه توګه ازمویل شوې شتون.