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

Даден е вектор urls и непразен 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 адреса, затоа изберете го базенот според вистинското излезно однесување на услугата.

Поврзани статии