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 لارنى ئايلاندۇرىدۇ، دەلىللەنگەن ئاممىۋى چىقىش كىملىكى ياكى مۇستەقىل تەكشۈرۈلگەن ئىشلەتكىلى بولۇشچانلىقنى ئەمەس.

مۇناسىۋەتلىك ماقالىلەر