Round-robin-proxyselectie in Colly met SetProxyFunc
Gebruik SetProxyFunc voor round-robin-selectie, met het oog op keep-alive, transportvervanging en gekloonde 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/")Gebruik github.com/gocolly/colly/v2 en het bijbehorende proxy-pakket in de functie van de applicatie, met behoud van normale foutafhandeling. Configureer de selector voordat verzoeken of asynchrone bezoeken beginnen. De HTTP-proxylijst levert openbare kandidaten voor de endpoint-invoer van de schakelaar.
SetProxy kiest een vast endpoint; SetProxyFunc laat het HTTP-transport per verzoek kiezen. Zo wordt voorkomen dat de gedeelde configuratie in elke OnRequest-callback wordt vervangen.
In deze implementatie zet SetProxyFunc ook DisableKeepAlives op true. Het werkt een bestaand *http.Transport bij, maar vervangt een ander transporttype door een nieuw HTTP-transport. Behoud bewust aangepast RoundTripper-gedrag in plaats van aan te nemen dat het blijft bestaan.
Collector.Clone deelt de HTTP-backend, dus het wijzigen van de proxy van een kloon kan die gedeelde backend wijzigen. Bepaal eigenaarschap vóór gelijktijdig werk. Round-robin-selectie roteert de aangeleverde endpoints, niet geverifieerde openbare exit-identiteiten of onafhankelijk gecontroleerde beschikbaarheid.