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

Користите github.com/gocolly/colly/v2 и његов пакет proxy у функцији апликације, уз уобичајено руковање грешкама. Конфигуришите бирач пре него што захтеви или асинхрони посети почну. Листа HTTP проксија даје јавне кандидате за улазе endpoint-а преклопника.

SetProxy бира фиксни endpoint; SetProxyFunc дозвољава HTTP transport-у да бира по сваком захтеву. Тиме се избегава замена дељене конфигурације унутар сваког повратног позива OnRequest.

У овој имплементацији SetProxyFunc такође поставља DisableKeepAlives на true. Ажурира постојећи *http.Transport, али замењује другу врсту transport-а новим HTTP transport-ом. Намерно сачувајте свако прилагођено понашање RoundTripper-а уместо да претпостављате да ће преживети.

Collector.Clone дели HTTP backend, па промена проксија клона може променити тај дељени backend. Одредите власништво пре паралелног рада. Кружни избор ротира достављене endpoint-е, а не проверене јавне излазне идентитете ни независно проверену доступност.

Повезани чланци