Kruhové střídání proxy v Colly pomocí SetProxyFunc
Použijte SetProxyFunc pro kruhové střídání s ohledem na vliv keep-alive, nahrazení transportu a klonovaného backendu.
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/")Ve funkci aplikace použijte github.com/gocolly/colly/v2 a jeho balíček proxy se zachováním běžného ošetření chyb. Selektor nastavte dříve, než začnou požadavky nebo asynchronní návštěvy. Seznam HTTP proxy poskytuje veřejné kandidáty pro vstupy endpointů přepínače.
SetProxy volí pevný endpoint; SetProxyFunc umožňuje HTTP transportu volit při každém požadavku. Vyhýbá se nahrazování sdílené konfigurace uvnitř každého callbacku OnRequest.
V této implementaci SetProxyFunc také nastavuje DisableKeepAlives na true. Aktualizuje existující *http.Transport, ale jiný typ transportu nahrazuje novým HTTP transportem. Jakékoli vlastní chování RoundTripperu vědomě zachovejte, místo abyste předpokládali, že přežije.
Collector.Clone sdílí HTTP backend, takže změna proxy klonu může změnit tento sdílený backend. Před souběžnou prací určete vlastnictví. Kruhové střídání otáčí dodané endpointy, nikoli ověřené veřejné výstupní identity nebo nezávisle ověřenou dostupnost.