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

Gebruik github.com/gocolly/colly/v2 en sy proxy-pakket in die toepassing se funksie, en behou normale foutafhandeling. Stel die keurder op voordat versoeke of asinchrone besoeke begin. Die HTTP-proksielys lewer openbare kandidate vir die skakelaar se eindpunt-invoere.

SetProxy kies 'n vaste eindpunt; SetProxyFunc laat die HTTP-transport per versoek kies. Dit vermy die vervanging van gedeelde konfigurasie binne elke OnRequest-terugroep.

In hierdie implementering stel SetProxyFunc ook DisableKeepAlives op waar. Dit werk 'n bestaande *http.Transport by, maar vervang 'n ander transporttipe met 'n nuwe HTTP-transport. Bewaar enige pasgemaakte RoundTripper-gedrag doelbewus eerder as om aan te neem dat dit behoue bly.

Collector.Clone deel die HTTP-agterkant, so om 'n kloon se proksi te verander kan daardie gedeelde agterkant verander. Besleg eienaarskap voor gelyktydige werk. Rondomtalie-keuse roteer verskafde eindpunte, nie geverifieerde openbare uitgangsidentiteite of onafhanklik nagegane beskikbaarheid nie.

Verwante artikels