Kuzungusha proksi katika httr ya R na kuchanganua HTML iliyopakuliwa
Badilisha safu ya proksi kwa kila ombi la httr na peleka baiti zilizopakuliwa kwa xml2 na rvest.
Weka uchaguzi wa proksi katika operesheni ya kupakua yenyewe. Baada ya httr kurudisha ukurasa, chambua baiti za jibu hilo badala ya kupeleka URL kwa kipakuzi kingine.
Ukipewa vekta urls na data frame proxies isiyo tupu yenye safu host na port nambari kamili:
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"))
}
Kwa maombi ya kurasa za umma yanayoruhusiwa kupitia wapatanishi wa umma, orodha ya proksi HTTP hutoa wateule kwa safu za host na port. Kielekezi huzunguka kutoka safu ya kwanza ya proksi hadi ya mwisho kisha hurudi mwanzo. Kila mwito una usanidi wake wa proksi; mchakato wa R unaweza kuendelea kufanya kazi.
Kurasa zinazopatikana zina hati za HTML zilizochanganuliwa. Tumia rvest::html_elements na vitendaji vinavyohitajika vya uchimbaji kwa hati hizo. Kupitisha URL kwa read_html badala yake kungeanzisha upataji mpya na usanidi wa mtandao wa njia hiyo yenyewe.
Kwa proksi zilizothibitishwa, peleka akaunti iliyochaguliwa kupitia hoja za username na password za use_proxy. Mwisho tofauti hauhakikishi IP ya kutoka ya umma tofauti, kwa hiyo chagua bwawa kulingana na tabia halisi ya kutoka ya huduma.