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

Isticmaal github.com/gocolly/colly/v2 iyo xidhmada proxy ee ku jirta shaqada barnaamijka, adigoo ilaalinaya maaraynta khaladaadka caadiga ah. Habee doorashada ka hor inta aan codsiyada ama booqashooyinka asynchronous bilaaban. Liiska proxy-ga HTTP wuxuu bixiyaa musharixiin dadweyne oo loogu talagalay gelinta endpoint-ka beddelaha.

SetProxy wuxuu doortaa endpoint go'an; SetProxyFunc wuxuu u oggolaanayaa transport-ka HTTP inuu doorto codsi kasta. Tani waxay ka fogaataa beddelka habaynta la wadaago gudaha callback kasta oo OnRequest ah.

Hawlgelintan, SetProxyFunc wuxuu kaloo dhigaa DisableKeepAlives true. Wuxuu cusboonaysiiyaa *http.Transport jira, laakiin wuxuu ku beddelaa nooc transport kale HTTP transport cusub. Si ula kac ah u ilaali habdhaqanka RoundTripper ee gaarka ah halkii aad ka fikiri lahayd inuu sii noolaan doono.

Collector.Clone wuxuu wadaagaa HTTP backend, sidaas darteed beddelka proxy-ga koobi wuxuu beddeli karaa backend-kaas la wadaago. Go'aami lahaanshaha ka hor shaqada isku mar ah. Doorashada wareegga waxay rogaa endpoint-yada la bixiyay, ma aha aqoonsiga bixitaanka dadweynaha ee la xaqiijiyay ama helitaanka si madax banaan loo baadhay.

Maqaallo la xiriira