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

Brúka github.com/gocolly/colly/v2 og proxy-pakkan hjá tí í funktiónini í applikatiónini, og varðveit vanliga feilhandfaring. Set valarin, áðrenn avbiðnir ella asynkron vitjanir byrja. HTTP-proxy-listin veitir almennar kandidatar til endpoint-innlit skiftisins.

SetProxy velur ein fastan endpoint; SetProxyFunc letur HTTP-transportin velja fyri hvørja avbiðn. Hetta forðar fyri at skifta deilda uppsetingina inni í hvørjum OnRequest-afturkalli.

Í hesi implementatión setur SetProxyFunc eisini DisableKeepAlives til true. Tað dagførir eitt verandi *http.Transport, men loysir ein annan transport-týpu av við ein nýggjan HTTP-transport. Varðveit tilvitað hvørja serstaka RoundTripper-atferð í staðin fyri at halda, at hon yvirlivir.

Collector.Clone deilir HTTP-backendinum, so at broyta proxy hjá einum klona kann broyta tann deilda backendin. Áset eigaraskap áðrenn samsíða arbeiði. Round-robin-val skiftir millum givnu endpointini, ikki váttaðar almennar útgongdarsamleikar ella óheft kannaða tøku.

Skyldar greinar