Colly round-robin-proxyvalg med SetProxyFunc
Brug SetProxyFunc til round-robin-valg, med øje for keep-alive, udskiftning af transport og klonet 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/")Brug github.com/gocolly/colly/v2 og dets proxy-pakke i programmets funktion, og bevar normal fejlhåndtering. Konfigurer vælgeren, før anmodninger eller asynkrone besøg starter. HTTP-proxylisten leverer offentlige kandidater til skifterens endpoint-input.
SetProxy vælger et fast endpoint; SetProxyFunc lader HTTP-transporten vælge pr. anmodning. Det undgår at erstatte delt konfiguration inde i hver OnRequest-callback.
I denne implementering sætter SetProxyFunc også DisableKeepAlives til true. Det opdaterer en eksisterende *http.Transport, men erstatter en anden transporttype med en ny HTTP-transport. Bevar bevidst enhver tilpasset RoundTripper-adfærd i stedet for at antage, at den overlever.
Collector.Clone deler HTTP-backenden, så ændring af en klons proxy kan ændre den delte backend. Fastlæg ejerskab før samtidigt arbejde. Round-robin-valg roterer de angivne endpoints, ikke verificerede offentlige udgangsidentiteter eller uafhængigt kontrolleret tilgængelighed.