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/")

Cleachd github.com/gocolly/colly/v2 agus a phacaid proxy ann an gnìomh na h-aplacaid, a' gleidheadh làimhseachadh àbhaisteach mhearachdan. Rèitich an tagraiche mus tòisich iarrtasan no tadhail asyncronach. Bheir an liosta proxy HTTP tagraichean poblach seachad airson cuir-a-steach endpoint an tionndaidh.

Taghaidh SetProxy endpoint stèidhichte; leigidh SetProxyFunc leis an transport HTTP taghadh airson gach iarrtais. Seachnaidh seo ath-chur na rèiteachaidh co-roinnte taobh a-staigh gach callback OnRequest.

Anns a' chur an gnìomh seo, suidhichidh SetProxyFunc DisableKeepAlives gu true cuideachd. Ùraichidh e *http.Transport a th' ann mar-thà, ach cuiridh e seòrsa transport eadar-dhealaichte an àite transport HTTP ùr. Glèidh gu h-aona-ghnothaich giùlan RoundTripper gnàthaichte sam bith an àite a bhith a' gabhail ris gun mair e.

Co-roinnidh Collector.Clone an backend HTTP, mar sin faodaidh atharrachadh proxy cloin an backend co-roinnte sin atharrachadh. Suidhich seilbh mus tèid obair cho-aontach. Cuairticheann taghadh round-robin na endpointan a chaidh a thoirt seachad, chan e dearbh-aithnean fàgail poblach dearbhaichte no ruigsinneachd a chaidh a sgrùdadh gu neo-eisimeileach.

Artaigilean co-cheangailte