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.

Relaterte artikler