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

Lietojumprogrammas funkcijā izmantojiet github.com/gocolly/colly/v2 un tā proxy pakotni, saglabājot parasto kļūdu apstrādi. Konfigurējiet atlasītāju pirms pieprasījumu vai asinhrono apmeklējumu sākuma. HTTP starpniekserveru saraksts nodrošina publiskus kandidātus slēdža endpoint ievadiem.

SetProxy izvēlas fiksētu endpoint; SetProxyFunc ļauj HTTP transport izvēlēties katram pieprasījumam. Tas ļauj izvairīties no koplietotās konfigurācijas aizstāšanas katrā OnRequest atzvanī.

Šajā implementācijā SetProxyFunc arī iestata DisableKeepAlives uz true. Tas atjaunina esošo *http.Transport, bet aizstāj cita veida transport ar jaunu HTTP transport. Apzināti saglabājiet jebkuru pielāgotu RoundTripper darbību, nevis pieņemiet, ka tā izdzīvos.

Collector.Clone koplieto HTTP backend, tāpēc klona proxy maiņa var mainīt šo koplietoto backend. Pirms vienlaicīga darba nosakiet īpašumtiesības. Apļveida izvēle rotē nodrošinātos endpoint, nevis pārbaudītas publiskās izejas identitātes vai neatkarīgi pārbaudītu pieejamību.

Saistītie raksti