Кружен избор на прокси во 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, а не проверените јавни излезни идентитети или независно проверената достапност.