პროქსის რაუნდ-რობინ არჩევანი Colly-ში SetProxyFunc-ით
გამოიყენეთ 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 callback-ში.
ამ იმპლემენტაციაში SetProxyFunc DisableKeepAlives-საც true-ზე აყენებს. ის აახლებს არსებულ *http.Transport-ს, მაგრამ სხვა ტიპის transport-ს ცვლის ახალი HTTP transport-ით. ნებისმიერი მორგებული RoundTripper-ის ქცევა განზრახ შეინარჩუნეთ იმის ნაცვლად, რომ ჩათვალოთ, რომ ის გადარჩება.
Collector.Clone HTTP backend-ს იზიარებს, ამიტომ კლონის პროქსის შეცვლამ შეიძლება შეცვალოს ეს საერთო backend. ერთდროულ სამუშაომდე გადაწყვიტეთ მფლობელობა. რაუნდ-რობინ არჩევანი ატრიალებს მოწოდებულ endpoint-ებს და არა დამოწმებულ საჯარო გასასვლელ იდენტობებს ან დამოუკიდებლად შემოწმებულ ხელმისაწვდომობას.