Kružni izbor proxyja u Collyju sa SetProxyFunc
Koristite SetProxyFunc za kružni izbor, imajući na umu efekte keep-alivea, 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 birač 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 povratnog poziva OnRequest.
U ovoj implementaciji SetProxyFunc također postavlja DisableKeepAlives na true. Ažurira postojeći *http.Transport, ali zamjenjuje drugu vrstu transporta novim HTTP transportom. Namjerno sačuvajte svako prilagođeno ponašanje RoundTrippera umjesto da pretpostavljate da će preživjeti.
Collector.Clone dijeli HTTP backend, pa promjena proxyja klona može promijeniti taj dijeljeni backend. Odredite vlasništvo prije paralelnog rada. Kružni izbor rotira dostavljene endpointe, a ne provjerene javne izlazne identitete ni nezavisno provjerenu dostupnost.