Proxyk rotálása az R httr csomagjában és a letöltött HTML feldolgozása
Minden httr-kérésnél váltson proxy sort, és adja át a letöltött bájtokat az xml2 és rvest csomagnak.
Tartsa a proxy kiválasztását a letöltési műveletnél. Miután a httr visszaadta az oldalt, a válasz bájtjait dolgozza fel, ahelyett hogy az URL-t egy másik letöltőnek adná át.
Adott egy urls vektor és egy nem üres proxies data frame host és egész port oszlopokkal:
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"))
}
A nyilvános közvetítőkön keresztül engedélyezett nyilvános oldalak kéréseihez a HTTP proxy lista kínál jelölteket a host és port oszlopokhoz. Az index az első proxysortól az utolsóig halad, majd újrakezdi. Minden hívásnak saját proxykonfigurációja van; az R-folyamat tovább futhat.
Az eredményül kapott oldalak feldolgozott HTML-dokumentumokat tartalmaznak. Alkalmazza rájuk a rvest::html_elements függvényt és a szükséges kinyerő függvényeket. Ha inkább URL-t adna a read_html függvénynek, az adott útvonal saját hálózati konfigurációjával indulna új lekérés.
Hitelesített proxyk esetén a kiválasztott fiókot a use_proxy username és password argumentumain keresztül adja át. Egy másik végpont nem garantál más nyilvános kilépő IP-t, ezért a készletet a szolgáltatás tényleges kilépési viselkedése szerint válassza.