Collyn vuorotteleva välityspalvelimen valinta SetProxyFuncilla
Käytä SetProxyFuncia vuorotteluun ja huomioi keep-aliven, transportin korvaamisen ja kloonatun backendin vaikutukset.
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/")Käytä github.com/gocolly/colly/v2-pakettia ja sen proxy-pakettia sovelluksen funktiossa ja säilytä tavallinen virheenkäsittely. Määritä valitsin ennen kuin pyynnöt tai asynkroniset vierailut alkavat. HTTP-välityspalvelinluettelo tarjoaa julkisia ehdokkaita vaihtajan endpoint-syötteiksi.
SetProxy valitsee kiinteän endpointin; SetProxyFunc antaa HTTP-transportin valita pyyntökohtaisesti. Näin vältetään jaetun kokoonpanon korvaaminen jokaisen OnRequest-takaisinkutsun sisällä.
Tässä toteutuksessa SetProxyFunc asettaa myös DisableKeepAlives-arvon todeksi. Se päivittää olemassa olevan *http.Transport, mutta korvaa eri transport-tyypin uudella HTTP-transportilla. Säilytä mahdollinen mukautettu RoundTripper-käyttäytyminen tarkoituksella sen sijaan, että olettaisit sen säilyvän.
Collector.Clone jakaa HTTP-backendin, joten kloonin välityspalvelimen muuttaminen voi muuttaa tuota jaettua backendia. Sovita omistajuus ennen samanaikaista työtä. Vuorottelu kiertää annettuja endpointteja, ei vahvistettuja julkisia lähtöidentiteettejä tai itsenäisesti tarkistettua saatavuutta.