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 ដែលបានផ្តល់ មិនមែន អត្តសញ្ញាណចេញសាធារណៈ ដែលបានផ្ទៀងផ្ទាត់ ឬភាពអាចប្រើបានដែលបានពិនិត្យដោយឯករាជ្យ។

អត្ថបទពាក់ព័ន្ធ