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

Përdorni github.com/gocolly/colly/v2 dhe paketën e tij proxy në funksionin e aplikacionit, duke ruajtur trajtimin normal të gabimeve. Konfiguroni përzgjedhësin përpara se të fillojnë kërkesat ose vizitat asinkrone. Lista e proxy-ve HTTP ofron kandidatë publikë për hyrjet e endpoint-it të ndërprerësit.

SetProxy zgjedh një endpoint fiks; SetProxyFunc lejon transport-in HTTP të zgjedhë për çdo kërkesë. Kjo shmang zëvendësimin e konfigurimit të përbashkët brenda çdo callback-u OnRequest.

Në këtë implementim, SetProxyFunc vendos gjithashtu DisableKeepAlives në true. Ai përditëson një *http.Transport ekzistues, por zëvendëson një lloj tjetër transport me një transport të ri HTTP. Ruani qëllimisht çdo sjellje të personalizuar të RoundTripper në vend që të supozoni se do të mbijetojë.

Collector.Clone ndan backend-in HTTP, prandaj ndryshimi i proxy-t të një kloni mund të ndryshojë atë backend të përbashkët. Përcaktoni pronësinë përpara punës konkurrente. Zgjedhja rrethore rrotullon endpoint-et e ofruara, jo identitetet publike të daljes të verifikuara ose disponueshmërinë e kontrolluar në mënyrë të pavarur.

Artikuj të ngjashëm