Roteer proxy's in R se httr en ontleed die afgelaaide HTML
Wissel per httr-versoek deur proxy-rye en gee die afgelaaide grepe aan xml2 en rvest.
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.