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 භ්‍රමණය කරයි, සත්‍යාපිත පොදු පිටවීම් අනන්‍යතා හෝ ස්වාධීනව පරීක්ෂා කළ ලබා ගැනීමක් නොව.

අදාළ ලිපි