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 ಗಳನ್ನು ತಿರುಗಿಸುತ್ತದೆ, ಪರಿಶೀಲಿಸಿದ ಸಾರ್ವಜನಿಕ ನಿರ್ಗಮನ ಗುರುತುಗಳನ್ನು ಅಥವಾ ಸ್ವತಂತ್ರವಾಗಿ ಪರಿಶೀಲಿಸಿದ ಲಭ್ಯತೆಯನ್ನು ಅಲ್ಲ.