Кружни избор проксија у Colly-ју са SetProxyFunc
Користите SetProxyFunc за кружни избор, имајући на уму ефекте keep-alive-а, замене transport-а и клонираног backend-а.
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-е, а не проверене јавне излазне идентитете ни независно проверену доступност.