R тилиндеги httr ичинде проксилерди ротациялоо жана жүктөлгөн HTMLди талдоо
Ар бир httr суроосунда прокси сабын алмаштырып, жүктөлгөн байттарды xml2 жана rvestке өткөрүңүз.
Прокси тандоону жүктөө операциясында кармаңыз. httr баракты кайтаргандан кийин URLди башка жүктөгүчкө берүүнүн ордуна ошол жооптун байттарын талдаңыз.
urls вектору жана host менен бүтүн port мамычалары бар бош эмес proxies data frame берилген:
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"))
}
Коомдук ортомчулар аркылуу уруксат берилген коомдук барак суроолору үчүн HTTP прокси тизмеси host жана port мамычаларына талапкерлерди сунуштайт. Индекс биринчи прокси сабынан акыркысына чейин айланып, кайра башына кайтат. Ар бир чакыруунун өз прокси конфигурациясы бар; R процесси ишин уланта алат.
Алынган барактар талданган HTML документтерин камтыйт. Аларга rvest::html_elements жана керектүү бөлүп алуу функцияларын колдонуңуз. Анын ордуна read_htmlге URL берүү ошол жолдун өз тармак конфигурациясы менен жаңы жүктөөнү баштамак.
Аутентификацияланган проксилер үчүн тандалган эсепти use_proxyнин username жана password аргументтери аркылуу өткөрүңүз. Башка акыркы чекит башка коомдук чыгуу IPсин кепилдебейт, ошондуктан бассейнди кызматтын чыныгы чыгуу жүрүм-турумуна жараша тандаңыз.