R-ന്റെ httr-ൽ പ്രോക്സി കറക്കുകയും ഡൗൺലോഡ് ചെയ്ത HTML പാഴ്സ് ചെയ്യുകയും ചെയ്യുക
ഓരോ httr അഭ്യർത്ഥനയിലും പ്രോക്സി വരി മാറ്റി ഡൗൺലോഡ് ചെയ്ത ബൈറ്റുകൾ xml2-ലേക്കും rvest-ലേക്കും കൈമാറുക.
പ്രോക്സി തിരഞ്ഞെടുപ്പ് ഡൗൺലോഡ് പ്രവർത്തനത്തിൽ തന്നെ നിർത്തുക. httr പേജ് തിരികെ നൽകിയാൽ, URL മറ്റൊരു ഡൗൺലോഡറിലേക്ക് നൽകുന്നതിനു പകരം ആ പ്രതികരണത്തിന്റെ ബൈറ്റുകൾ പാഴ്സ് ചെയ്യുക.
ഒരു urls വെക്ടറും host, പൂർണ്ണസംഖ്യ port നിരകളുള്ള ശൂന്യമല്ലാത്ത data frame proxies-ഉം നൽകിയിട്ടുണ്ടെങ്കിൽ:
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 ഉറപ്പാക്കുന്നില്ല, അതിനാൽ സേവനത്തിന്റെ യഥാർത്ഥ എക്സിറ്റ് സ്വഭാവം അനുസരിച്ച് പൂൾ തിരഞ്ഞെടുക്കുക.