Uchaguzi wa proksi wa mzunguko katika Colly kwa SetProxyFunc
Tumia SetProxyFunc kwa uchaguzi wa mzunguko, ukizingatia athari za keep-alive, uingizwaji wa transport na backend iliyonakiliwa.
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/")Tumia github.com/gocolly/colly/v2 na kifurushi chake proxy katika kitendakazi cha programu, ukihifadhi ushughulikiaji wa kawaida wa makosa. Sanidi kichaguzi kabla ya maombi au ziara zisizo sawa kuanza. Orodha ya proksi za HTTP hutoa watahiniwa wa umma kwa pembejeo za endpoint za kibadilishaji.
SetProxy huchagua endpoint isiyobadilika; SetProxyFunc huruhusu transport ya HTTP kuchagua kwa kila ombi. Hii inaepuka kubadilisha usanidi unaoshirikiwa ndani ya kila callback ya OnRequest.
Katika utekelezaji huu, SetProxyFunc pia huweka DisableKeepAlives kuwa true. Huvasisha *http.Transport iliyopo, lakini hubadilisha aina nyingine ya transport na transport mpya ya HTTP. Hifadhi kwa makusudi tabia yoyote maalum ya RoundTripper badala ya kudhani itaendelea kuishi.
Collector.Clone hushiriki backend ya HTTP, kwa hivyo kubadilisha proksi ya nakala kunaweza kubadilisha backend hiyo inayoshirikiwa. Amua umiliki kabla ya kazi ya wakati mmoja. Uchaguzi wa mzunguko huzungusha endpoint zilizotolewa, si vitambulisho vya kutoka vya umma vilivyothibitishwa au upatikanaji uliochunguzwa kwa kujitegemea.