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

Notaðu github.com/gocolly/colly/v2 og proxy pakkann hans í falli forritsins, og viðhaltu venjulegri villumeðferð. Stilla valið áður en beiðnir eða asynkron heimsóknir hefjast. HTTP-proxylistinn veitir opinberar frambjóðendur fyrir endpoint-inntak skiptisins.

SetProxy velur fast endpoint; SetProxyFunc leyfir HTTP transportinum að velja fyrir hverja beiðni. Þannig er komið í veg fyrir að skipt sé um sameiginlegu stillinguna inni í hverju OnRequest endurkalli.

Í þessari útfærslu stillir SetProxyFunc einnig DisableKeepAlives á true. Það uppfærir fyrirliggjandi *http.Transport, en skiptir annarri transporttegund út fyrir nýtt HTTP transport. Varðveittu sérsniðna RoundTripper-hegðun viljandi í stað þess að gera ráð fyrir að hún lifi af.

Collector.Clone deilir HTTP backendinum, svo að breyta proxy klóns getur breytt þeim sameiginlega backend. Ákvarðaðu eignarhald fyrir samhliða vinnu. Hringlaga val skiptir um tiltekna endapunkta, ekki staðfestar opinberar útgangsauðkenni eða óháð kannaða framboð.

Tengdir greinar