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

Ilova funksiyasida github.com/gocolly/colly/v2 va uning proxy paketidan foydalaning, odatdagi xatolarni qayta ishlashni saqlang. Selektorни so'rovlar yoki asinxron tashriflar boshlanishidan oldin sozlang. HTTP proksi ro'yxati almashtirgichning endpoint kirishlari uchun ommaviy nomzodlarni beradi.

SetProxy qat'iy endpoint tanlaydi; SetProxyFunc HTTP transport ga har bir so'rov bo'yicha tanlash imkonini beradi. Bu har bir OnRequest qayta chaqiruv ichida umumiy konfiguratsiyani almashtirishdan saqlaydi.

Ushbu amalga oshirishda SetProxyFunc DisableKeepAlives ni ham true qiladi. U mavjud *http.Transport ni yangilaydi, lekin boshqa transport turini yangi HTTP transport bilan almashtiradi. Har qanday moslashtirilgan RoundTripper xatti-harakati saqlanadi deb o'ylash o'rniga uni ataylab saqlang.

Collector.Clone HTTP backend ni bo'lishadi, shuning uchun klon proksisini o'zgartirish o'sha umumiy backend ni o'zgartirishi mumkin. Parallel ishdan oldin egalikni belgilang. Aylanma tanlash berilgan endpoint larni aylantiradi, tekshirilgan ommaviy chiqish identifikatorlarini yoki mustaqil tekshirilgan mavjudlikni emas.

O'xshash maqolalar