Pemilihan proksi round-robin Colly dengan SetProxyFunc
Gunakan SetProxyFunc untuk pemilihan round-robin, dengan mempertimbangkan efek keep-alive, penggantian transport, dan backend yang diklon.
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/")Gunakan github.com/gocolly/colly/v2 dan paket proxy-nya di fungsi aplikasi, dengan tetap mempertahankan penanganan kesalahan normal. Konfigurasikan pemilih sebelum permintaan atau kunjungan asinkron dimulai. Daftar proksi HTTP menyediakan kandidat publik untuk masukan endpoint pengalih.
SetProxy memilih endpoint tetap; SetProxyFunc membiarkan transport HTTP memilih per permintaan. Ini menghindari penggantian konfigurasi bersama di dalam setiap callback OnRequest.
Dalam implementasi ini, SetProxyFunc juga menyetel DisableKeepAlives ke true. Ini memperbarui *http.Transport yang ada, tetapi mengganti jenis transport lain dengan transport HTTP baru. Pertahankan perilaku RoundTripper kustom apa pun secara sengaja alih-alih mengasumsikan perilaku itu bertahan.
Collector.Clone berbagi backend HTTP, sehingga mengubah proksi sebuah klon dapat mengubah backend bersama tersebut. Tetapkan kepemilikan sebelum pekerjaan bersamaan. Pemilihan round-robin memutar endpoint yang diberikan, bukan identitas keluar publik yang terverifikasi atau ketersediaan yang diperiksa secara independen.