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/")

Använd github.com/gocolly/colly/v2 och dess proxy-paket i applikationens funktion, och behåll normal felhantering. Konfigurera väljaren innan förfrågningar eller asynkrona besök börjar. HTTP-proxylistan tillhandahåller offentliga kandidater för växlarens endpoint-indata.

SetProxy väljer en fast endpoint; SetProxyFunc låter HTTP-transporten välja per förfrågan. Det undviker att ersätta den delade konfigurationen inuti varje OnRequest-callback.

I den här implementeringen sätter SetProxyFunc också DisableKeepAlives till true. Det uppdaterar en befintlig *http.Transport, men ersätter en annan transporttyp med en ny HTTP-transport. Bevara medvetet eventuellt anpassat RoundTripper-beteende i stället för att anta att det överlever.

Collector.Clone delar HTTP-backenden, så att ändra en klons proxy kan ändra den delade backenden. Fastställ ägandet före samtidigt arbete. Round-robin-val roterar de angivna endpointerna, inte verifierade offentliga utgångsidentiteter eller oberoende kontrollerad tillgänglighet.

Relaterade artiklar