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 funksjonen til applikasjonen, og hald på vanleg feilhandsaming. Set opp veljaren før førespurnader eller asynkrone besøk byrjar. HTTP-proxylista gir offentlege kandidatar for endpoint-inndata til brytaren.

SetProxy vel eit fast endpoint; SetProxyFunc lèt HTTP-transporten velje per førespurnad. Det unngår å erstatta delt konfigurasjon inne i kvar OnRequest-callback.

I denne implementasjonen set SetProxyFunc også DisableKeepAlives til true. Det oppdaterer ein eksisterande *http.Transport, men erstattar ein annan transporttype med ein ny HTTP-transport. Ta vare på eit eventuelt tilpassa RoundTripper-åtferd med vilje i staden for å gå ut frå at det overlever.

Collector.Clone deler HTTP-backenden, så endring av proxyen til ein klon kan endre den delte backenden. Fastset eigarskap før samtidig arbeid. Round-robin-val rullerer dei oppgitte endpointa, ikkje stadfesta offentlege utgangsidentitetar eller uavhengig kontrollert tilgjenge.

Relaterte artiklar