Körkörös proxyválasztás a Collyban a SetProxyFunc segítségével
Használja a SetProxyFuncot körkörös választáshoz, figyelembe véve a keep-alive, a transport cseréjének és a klónozott backendnek a hatásait.
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/")Használja a github.com/gocolly/colly/v2-et és annak proxy csomagját az alkalmazás függvényében, megtartva a szokásos hibakezelést. A kiválasztót a kérések vagy aszinkron látogatások megkezdése előtt állítsa be. Az HTTP-proxylista nyilvános jelölteket biztosít a váltó endpoint-bemeneteihez.
SetProxy rögzített endpointot választ; a SetProxyFunc lehetővé teszi, hogy a HTTP transport kérésenként válasszon. Így elkerülhető a megosztott konfiguráció lecserélése minden OnRequest visszahívásban.
Ebben a megvalósításban a SetProxyFunc a DisableKeepAlives értékét is true-ra állítja. Frissít egy meglévő *http.Transport-et, de egy másik transport-típust új HTTP transportra cserél. Bármilyen egyéni RoundTripper-viselkedést szándékosan őrizzen meg, ahelyett hogy feltételezné, hogy túlél.
A Collector.Clone megosztja a HTTP backendet, ezért egy klón proxyjának módosítása megváltoztathatja ezt a megosztott backendet. A párhuzamos munka előtt rendezze a tulajdonjogot. A körkörös választás a megadott endpointokat forgatja, nem az ellenőrzött nyilvános kilépési identitásokat vagy a függetlenül vizsgált elérhetőséget.