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

Uzu github.com/gocolly/colly/v2 kaj ĝian pakaĵon proxy en la funkcio de la aplikaĵo, konservante normalan erartraktadon. Agordu la selektilon antaŭ ol petoj aŭ nesinkronaj vizitoj komenciĝos. La listo de HTTP-prokuroj provizas publikajn kandidatojn por la endpoint-enigoj de la ŝaltilo.

SetProxy elektas fiksan endpointon; SetProxyFunc permesas al la HTTP-transporto elekti por ĉiu peto. Tio evitas anstataŭigi la komunan agordon ene de ĉiu OnRequest-retrokuplo.

En ĉi tiu efektivigo, SetProxyFunc ankaŭ agordas DisableKeepAlives al true. Ĝi ĝisdatigas ekzistantan *http.Transport, sed anstataŭigas alian transportan tipon per nova HTTP-transporto. Konservu intence ajnan kutiman konduton de RoundTripper anstataŭ supozi, ke ĝi postvivos.

Collector.Clone dividas la HTTP-backendon, do ŝanĝi la prokuron de klono povas ŝanĝi tiun komunan backendon. Difinu posedrajtojn antaŭ samtempa laboro. Ĉirkaŭvica elekto rotacias la provizitajn endpointojn, ne kontrolitajn publikajn elirajn identecojn aŭ sendepende kontrolitan disponeblecon.

Rilataj artikoloj