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/")

Uygulamanın fonksiyonunda github.com/gocolly/colly/v2 ve proxy paketini kullanın, normal hata işlemeyi koruyun. Seçiciyi istekler veya eşzamansız ziyaretler başlamadan önce yapılandırın. HTTP proxy listesi, değiştiricinin endpoint girdileri için genel adaylar sağlar.

SetProxy sabit bir endpoint seçer; SetProxyFunc HTTP transport'un her istekte seçmesine izin verir. Bu, her OnRequest geri çağrısı içinde paylaşılan yapılandırmanın değiştirilmesini önler.

Bu uygulamada, SetProxyFunc ayrıca DisableKeepAlives değerini true yapar. Var olan bir *http.Transport günceller, ancak farklı bir transport türünü yeni bir HTTP transport ile değiştirir. Herhangi bir özel RoundTripper davranışının hayatta kalacağını varsaymak yerine onu bilinçli olarak koruyun.

Collector.Clone HTTP backend'i paylaşır, bu nedenle bir klonun proxy'sini değiştirmek o paylaşılan backend'i değiştirebilir. Eşzamanlı çalışmadan önce sahipliği belirleyin. Sıralı seçim, sağlanan endpoint'leri döndürür; doğrulanmış genel çıkış kimliklerini veya bağımsız olarak kontrol edilmiş kullanılabilirliği değil.

İlgili makaleler