Zadržite izbor proxyja u samoj operaciji preuzimanja. Kada httr vrati stranicu, parsirajte bajtove tog odgovora umesto da URL prosleđujete drugom preuzimaču.

Uz vektor urls i neprazan data frame proxies sa kolonama host i celobrojnog 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"))
}

Za zahteve javnih stranica dozvoljene kroz javne posrednike, lista HTTP proxyja daje kandidate za kolone host i port. Indeks kruži od prvog do poslednjeg reda proxyja i vraća se na početak. Svaki poziv ima sopstvenu konfiguraciju proxyja; R proces može da nastavi sa radom.

Dobijene stranice sadrže parsirane HTML dokumente. Primenite rvest::html_elements i potrebne funkcije izdvajanja na te dokumente. Prosleđivanje URL-a u read_html pokrenulo bi novo preuzimanje sa sopstvenom mrežnom konfiguracijom tog puta.

Za autentifikovane proxyje prosledite izabrani nalog kroz argumente username i password funkcije use_proxy. Druga krajnja tačka ne garantuje drugu javnu izlaznu IP adresu, pa odaberite bazen prema stvarnom izlaznom ponašanju usluge.

Povezani članci