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-ებს და არა დამოწმებულ საჯარო გასასვლელ იდენტობებს ან დამოუკიდებლად შემოწმებულ ხელმისაწვდომობას.

დაკავშირებული სტატიები