Colly kružni odabir proxyja uz SetProxyFunc
Koristite SetProxyFunc za kružni odabir, imajući na umu efekte keep-alive, zamjene transporta i kloniranog backend-a.
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/")Koristite github.com/gocolly/colly/v2 i njegov paket proxy u funkciji aplikacije, uz uobičajeno rukovanje greškama. Konfigurirajte selektor prije nego što zahtjevi ili asinhroni posjeti počnu. Lista HTTP proxyja daje javne kandidate za ulaze endpointa preklopnika.
SetProxy bira fiksni endpoint; SetProxyFunc dopušta HTTP transportu da bira po svakom zahtjevu. Time se izbjegava zamjena dijeljene konfiguracije unutar svakog OnRequest povratnog poziva.
U ovoj implementaciji SetProxyFunc također postavlja DisableKeepAlives na true. Ažurira postojeći *http.Transport, ali zamjenjuje drugi tip transporta novim HTTP transportom. Namjerno sačuvajte bilo kakvo prilagođeno ponašanje RoundTrippera umjesto da pretpostavljate da će opstati.
Collector.Clone dijeli HTTP backend, pa promjena proxyja klona može promijeniti taj dijeljeni backend. Odredite vlasništvo prije paralelnog rada. Kružni odabir rotira dostavljene endpointe, a ne provjerene javne izlazne identitete ni nezavisno provjerenu dostupnost.