Rrotullimi i përfaqësuesve në httr të R dhe analizimi i HTML-së së shkarkuar
Ndrysho rreshtin e përfaqësuesit në çdo kërkesë httr dhe kalo bajtët e shkarkuar te xml2 dhe rvest.
Mbaje zgjedhjen e përfaqësuesit në vetë veprimin e shkarkimit. Pasi httr kthen faqen, analizo bajtët e asaj përgjigjeje në vend që ta kalosh URL-në te një shkarkues tjetër.
Dhënë një vektor urls dhe një data frame proxies jo bosh me kolona host dhe port numër të plotë:
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"))
}
Për kërkesat e faqeve publike të lejuara përmes ndërmjetësve publikë, lista e përfaqësuesve HTTP ofron kandidatë për kolonat host dhe port. Indeksi kalon nga rreshti i parë i përfaqësuesit deri te i fundit dhe pastaj kthehet në fillim. Çdo thirrje ka konfigurimin e vet të përfaqësuesit; procesi R mund të vazhdojë punën.
Faqet që dalin përmbajnë dokumente HTML të analizuara. Zbato rvest::html_elements dhe funksionet e nevojshme të nxjerrjes mbi ato dokumente. Kalimi i një URL-je te read_html do të niste përkundrazi një tërheqje të re me konfigurimin e rrjetit të vetë asaj rruge.
Për përfaqësuesit e vërtetuar, kali llogarinë e zgjedhur përmes argumenteve username dhe password të use_proxy. Një pikë fundore tjetër nuk garanton një IP dalëse publike tjetër, prandaj zgjidh grupin sipas sjelljes reale të daljes së shërbimit.