Задржите избор проксија у самој операцији преузимања. Када httr врати страницу, парсирајте бајтове тог одговора уместо да URL прослеђујете другом преузимачу.

Уз вектор urls и непразaн data frame proxies са колонама host и целобројног 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"))
}

За захтеве јавних страница дозвољене кроз јавне посреднике, листа HTTP проксија даје кандидате за колоне host и port. Индекс кружи од првог до последњег реда проксија и враћа се на почетак. Сваки позив има сопствену конфигурацију проксија; R процес може да настави са радом.

Добијене странице садрже парсиране HTML документе. Примените rvest::html_elements и потребне функције издвајања на те документе. Прослеђивање URL-а у read_html покренуло би ново преузимање са сопственом мрежном конфигурацијом тог пута.

За аутентификоване проксије проследите изабрани налог кроз аргументе username и password функције use_proxy. Друга крајња тачка не гарантује другу јавну излазну IP адресу, па одаберите базен према стварном излазном понашању услуге.

Повезани чланци