Zadržite odabir proxyja u samoj operaciji preuzimanja. Kad httr vrati stranicu, parsirajte bajtove tog odgovora umjesto da URL prosljeđujete drugom preuzimatelju.

Uz vektor urls i neprazan data frame proxies sa stupcima host i cjelobrojnog 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 zahtjeve javnih stranica dopuštene kroz javne posrednike, popis HTTP proxyja daje kandidate za stupce host i port. Indeks kruži od prvog do posljednjeg retka proxyja i vraća se na početak. Svaki poziv ima vlastitu konfiguraciju proxyja; R proces može nastaviti raditi.

Dobivene stranice sadrže parsirane HTML dokumente. Primijenite rvest::html_elements i potrebne funkcije izdvajanja na te dokumente. Prosljeđivanje URL-a u read_html pokrenulo bi novo preuzimanje s vlastitom mrežnom konfiguracijom tog puta.

Za autentificirane proxyje proslijedite odabrani račun kroz argumente username i password funkcije use_proxy. Druga krajnja točka ne jamči drugu javnu izlaznu IP adresu, pa odaberite bazen prema stvarnom izlaznom ponašanju usluge.

Povezani članci