Hou proxykeuse by die aflaai-bewerking. Nadat httr die bladsy teruggegee het, ontleed die grepe van daardie antwoord eerder as om die URL aan 'n ander aflaaier te gee.

Gegewe 'n vektor urls en 'n nie-leë data frame proxies met host- en heelgetal-port-kolomme:

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"))
}

Vir versoeke na openbare bladsye wat deur openbare tussengangers toegelaat word, verskaf die HTTP-proxylys kandidate vir die data frame se host- en port-kolomme. Die indeks siklus van die eerste proxy-ry tot die laaste en begin weer by die begin. Elke oproep het sy eie proxykonfigurasie; die R-proses kan aanhou loop.

Die resulterende bladsye bevat ontlede HTML-dokumente. Pas rvest::html_elements en die nodige onttrekkingsfunksies op daardie dokumente toe. Om eerder 'n URL aan read_html te gee, sou 'n nuwe ophaling met daardie pad se eie netwerkkonfigurasie begin.

Vir geoutentiseerde proxy's, gee die gekose rekening via use_proxy se gebruikersnaam- en wagwoordargumente deur. 'n Ander eindpunt waarborg nie 'n ander openbare uitgangs-IP nie, so kies die poel volgens die diens se werklike uitgangsgedrag.

Verwante artikels