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 లను తిప్పుతుంది, ధృవీకరించిన పబ్లిక్ ఎగ్జిట్ గుర్తింపులు లేదా స్వతంత్రంగా తనిఖీ చేసిన లభ్యతను కాదు.