Трымайце выбар проксі ў аперацыі загрузкі. Пасля таго як 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, таму выбірайце пул паводле рэальных паводзінаў сэрвісу на выхадзе.

Падобныя артыкулы