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

V funkciji aplikacije uporabite github.com/gocolly/colly/v2 in njegov paket proxy, pri čemer ohranite običajno obravnavo napak. Selektor nastavite, preden se zahteve ali asinhrone obiski začnejo. Seznam proxyjev HTTP ponuja javne kandidate za vhode endpointov stikala.

SetProxy izbere fiksni endpoint; SetProxyFunc dovoli transportu HTTP, da izbere pri vsaki zahtevi. Tako se izogne zamenjavi skupne konfiguracije znotraj vsakega povratnega klica OnRequest.

V tej izvedbi SetProxyFunc tudi nastavi DisableKeepAlives na true. Posodobi obstoječi *http.Transport, vendar zamenja drugo vrsto transporta z novim transportom HTTP. Namerno ohranite morebitno prilagojeno vedenje RoundTripperja, namesto da bi predvidevali, da bo preživelo.

Collector.Clone si deli backend HTTP, zato lahko sprememba proxyja klona spremeni ta skupni backend. Pred sočasnim delom določite lastništvo. Krožni izbor vrti dobavljene endpointe, ne preverjenih javnih izhodnih identitet ali neodvisno preverjene razpoložljivosti.

Sorodni članki