Rotere proxyar i httr frå R og parse den nedlasta HTML-en
Bytt proxyrad ved kvar httr-førespurnad og send dei nedlasta byta vidare til xml2 og rvest.
Hald proxyvalet i sjølve nedlastinga. Når httr har returnert sida, parsar du byta i det svaret i staden for å senda URL-en vidare til ein annan nedlastar.
Gjeve ein vektor urls og ein ikkje-tom data frame proxies med kolonnane host og heiltals-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"))
}
For førespurnader til offentlege sider som er tillatne gjennom offentlege mellomledd, leverer HTTP-proxylista kandidatar for kolonnane host og port. Indeksen går frå fyrste proxyrad til den siste og byrjar så på nytt. Kvar kall har si eiga proxykonfigurasjon; R-prosessen kan halde fram.
Sidene som kjem ut, inneheld parsа HTML-dokument. Bruk rvest::html_elements og dei nødvendige uttrekksfunksjonane på desse dokumenta. Å gje ein URL til read_html ville i staden starte ei ny henting med den banen sin eigen nettverkskonfigurasjon.
For autentiserte proxyar sender du den valde kontoen gjennom username- og password-argumenta til use_proxy. Eit anna endepunkt garanterer ikkje ein annan offentleg utgangs-IP, så vel utvalet etter den faktiske utgangsåtterda til tenesta.