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.

Relaterede artikler