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

Tətbiqin funksiyasında github.com/gocolly/colly/v2 və onun proxy paketindən istifadə edin, normal xəta idarəetməsini saxlayın. Seçicini sorğular və ya asinxron girişlər başlamazdan əvvəl konfiqurasiya edin. HTTP proxy siyahısı keçiricinin endpoint girişləri üçün açıq namizədlər təqdim edir.

SetProxy sabit endpoint seçir; SetProxyFunc HTTP transportunun hər sorğuda seçməsinə imkan verir. Bu, hər OnRequest geri çağırışında paylaşılan konfiqurasiyanın dəyişdirilməsindən qaçır.

Bu tətbiqdə SetProxyFunc həmçinin DisableKeepAlives dəyərini true edir. Mövcud *http.Transport yeniləyir, lakin fərqli transport növünü yeni HTTP transportu ilə əvəz edir. Hər hansı fərdi RoundTripper davranışının qalacağını güman etmək əvəzinə onu qəsdən qoruyun.

Collector.Clone HTTP backend-i paylaşır, buna görə klonun proxysini dəyişmək həmin paylaşılan backend-i dəyişə bilər. Paralel işdən əvvəl sahibliyi müəyyənləşdirin. Dairəvi seçim təqdim edilən endpoint-ləri növbə ilə dəyişir, yoxlanılmış açıq çıxış kimliklərini və ya müstəqil yoxlanılmış mövcudluğu deyil.

Əlaqəli məqalələr