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 घुमाउँछ, प्रमाणित सार्वजनिक निकास पहिचान वा स्वतन्त्र रूपमा जाँचिएको उपलब्धता होइन।

सम्बन्धित लेखहरू