ការជ្រើសរើសប្រូកស៊ីបែបវេនវិលរបស់ 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 ជ្រើសរើសក្នុងមួយសំណើ។ វាជៀសវាងការជំនួសការកំណត់រចនាសម្ព័ន្ធរួមគ្នានៅក្នុង callback OnRequest នីមួយៗ។
ក្នុងការអនុវត្តនេះ SetProxyFunc ក៏កំណត់ DisableKeepAlives ទៅ true ផងដែរ។ វាធ្វើបច្ចុប្បន្នភាព *http.Transport ដែលមានស្រាប់ ប៉ុន្តែជំនួសប្រភេទ transport ផ្សេងដោយ HTTP transport ថ្មី។ រក្សាឥរិយាបថ RoundTripper ផ្ទាល់ខ្លួនណាមួយដោយចេតនា ជាជាងសន្មតថាវានឹងនៅរស់។
Collector.Clone ចែករំលែក HTTP backend ដូច្នេះការផ្លាស់ប្តូរប្រូកស៊ីរបស់ក្លូនអាចផ្លាស់ប្តូរ backend រួមនោះ។ កំណត់ភាពជាម្ចាស់ មុនពេលធ្វើការស្របគ្នា។ ការជ្រើសរើសបែបវេនវិលបង្វិល endpoint ដែលបានផ្តល់ មិនមែន អត្តសញ្ញាណចេញសាធារណៈ ដែលបានផ្ទៀងផ្ទាត់ ឬភាពអាចប្រើបានដែលបានពិនិត្យដោយឯករាជ្យ។