Պրոքսիների ռոտացիա R-ի httr-ում և ներբեռնված HTML-ի վերլուծում
Փոխեք պրոքսի տողը յուրաքանչյուր httr հարցումում և ներբեռնված բայթերը փոխանցեք xml2-ին ու rvest-ին։
Պրոքսիի ընտրությունը պահեք ներբեռնման գործողության մեջ։ Երբ httr-ը վերադարձնի էջը, վերլուծեք այդ պատասխանի բայթերը՝ URL-ը այլ ներբեռնիչի փոխանցելու փոխարեն։
Տրված են urls վեկտոր և ոչ դատարկ proxies data frame՝ host և ամբողջաթիվ 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"))
}
Հանրային միջնորդների միջոցով թույլատրված հանրային էջերի հարցումների համար HTTP պրոքսիների ցանկը տալիս է թեկնածուներ host և port սյունակների համար։ Ինդեքսը պտտվում է առաջին պրոքսի տողից մինչև վերջինը և վերադառնում սկիզբ։ Յուրաքանչյուր կանչ ունի իր պրոքսի կարգավորումը. R գործընթացը կարող է շարունակել աշխատել։
Ստացված էջերը պարունակում են վերլուծված HTML փաստաթղթեր։ Կիրառեք rvest::html_elements-ը և անհրաժեշտ արդյունահանման ֆունկցիաները այդ փաստաթղթերի վրա։ Փոխարենը URL-ը read_html-ին հանձնելը կսկսի նոր բեռնում այդ ուղու սեփական ցանցային կարգավորմամբ։
Նույնականացված պրոքսիների դեպքում ընտրված հաշիվը փոխանցեք use_proxy-ի username և password արգումենտներով։ Այլ վերջնակետը չի երաշխավորում այլ հանրային ելքային IP, ուստի լողավազանն ընտրեք ծառայության փաստացի ելքային վարքով։