Colly round-robin-proxyvalg med SetProxyFunc
Bruk SetProxyFunc for round-robin-valg, med blikk på keep-alive, utskifting av 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/")Bruk github.com/gocolly/colly/v2 og proxy-pakken i applikasjonens funksjon, og behold vanlig feilhåndtering. Konfigurer velgeren før forespørsler eller asynkrone besøk starter. HTTP-proxylisten leverer offentlige kandidater for svitsjens endpoint-inndata.
SetProxy velger et fast endpoint; SetProxyFunc lar HTTP-transporten velge per forespørsel. Det unngår å erstatte delt konfigurasjon inne i hver OnRequest-callback.
I denne implementasjonen setter SetProxyFunc også DisableKeepAlives til true. Det oppdaterer en eksisterende *http.Transport, men erstatter en annen transporttype med en ny HTTP-transport. Bevar bevisst enhver tilpasset RoundTripper-atferd i stedet for å anta at den overlever.
Collector.Clone deler HTTP-backenden, så endring av en klons proxy kan endre den delte backenden. Avklar eierskap før samtidig arbeid. Round-robin-valg roterer de angitte endpointene, ikke verifiserte offentlige utgangsidentiteter eller uavhengig kontrollert tilgjengelighet.