Tarpinio serverio pasirinkimą laikykite pačioje atsisiuntimo operacijoje. Kai httr grąžina puslapį, analizuokite to atsakymo baitus, o ne perduokite URL kitam atsisiuntėjui.

Turint vektorių urls ir netuščią data frame proxies su stulpeliais host ir sveikojo skaičiaus port:

pages <- vector("list", length(urls))
stopifnot(nrow(proxies) > 0L)

for (i in seq_along(urls)) {
  row <- ((i - 1L) %% nrow(proxies)) + 1L
  response <- httr::GET(
    urls[[i]],
    httr::use_proxy(proxies$host[[row]], proxies$port[[row]]),
    httr::timeout(30)
  )
  httr::stop_for_status(response)
  pages[[i]] <- xml2::read_html(httr::content(response, as = "raw"))
}

Viešų puslapių užklausoms, leidžiamoms per viešus tarpininkus, HTTP tarpinių serverių sąrašas pateikia kandidatus host ir port stulpeliams. Indeksas sukasi nuo pirmos tarpinio serverio eilutės iki paskutinės ir vėl grįžta į pradžią. Kiekvienas kvietimas turi savo tarpinio serverio konfigūraciją; R procesas gali toliau veikti.

Gautuose puslapiuose yra išanalizuoti HTML dokumentai. Taikykite jiems rvest::html_elements ir reikiamas išgavimo funkcijas. Jei vietoj to URL perduotumėte read_html, būtų pradėtas naujas gavimas su tos kelio savo tinklo konfigūracija.

Autentifikuotiems tarpiniams serveriams pasirinktą paskyrą perduokite per use_proxy argumentus username ir password. Kita prieigos vieta negarantuoja kito viešo išėjimo IP, todėl telkinį rinkitės pagal tikrąjį paslaugos išėjimo elgesį.

Susiję straipsniai