SetProxyFunc સાથે Colly ની રાઉન્ડ-રોબિન પ્રોક્સી પસંદગી
રાઉન્ડ-રોબિન પસંદગી માટે SetProxyFunc વાપરો, keep-alive, transport બદલી અને ક્લોન કરેલા 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/")એપ્લિકેશનના ફંક્શનમાં github.com/gocolly/colly/v2 અને તેનું proxy પેકેજ વાપરો, સામાન્ય ભૂલ સંભાળ રાખીને. વિનંતીઓ કે અસિંક્રનસ મુલાકાતો શરૂ થાય તે પહેલાં સિલેક્ટર ગોઠવો. HTTP પ્રોક્સી યાદી સ્વિચરના endpoint ઇનપુટ માટે જાહેર ઉમેદવારો પૂરા પાડે છે.
SetProxy નિશ્ચિત endpoint પસંદ કરે છે; SetProxyFunc HTTP transport ને દરેક વિનંતી માટે પસંદ કરવા દે છે. આ દરેક OnRequest કૉલબેકની અંદર શેર થયેલી ગોઠવણી બદલવાનું ટાળે છે.
આ અમલીકરણમાં, SetProxyFunc DisableKeepAlives ને પણ true સેટ કરે છે. તે હાલના *http.Transport ને અપડેટ કરે છે, પણ ભિન્ન transport પ્રકારને નવા HTTP transport થી બદલે છે. કોઈપણ કસ્ટમ RoundTripper વર્તન ટકી રહેશે એમ માનવાને બદલે તેને જાણી જોઈને જાળવો.
Collector.Clone HTTP backend શેર કરે છે, તેથી ક્લોનની પ્રોક્સી બદલવાથી તે શેર થયેલો backend બદલાઈ શકે છે. સમાંતર કામ પહેલાં માલિકી નક્કી કરો. રાઉન્ડ-રોબિન પસંદગી પૂરા પાડેલા endpoint ફેરવે છે, ચકાસાયેલ જાહેર એક્ઝિટ ઓળખ કે સ્વતંત્ર રીતે ચકાસાયેલી ઉપલબ્ધતા નહીં.