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 ଆର୍ଗୁମେଣ୍ଟ ମାଧ୍ୟମରେ ପଠାନ୍ତୁ। ଅଲଗା endpoint ଅଲଗା ସାର୍ବଜନୀନ exit IP ର ନିଶ୍ଚିତତା ଦିଏ ନାହିଁ, ତେଣୁ ସେବାର ପ୍ରକୃତ exit ଆଚରଣ ଅନୁସାରେ ପୁଲ ବାଛନ୍ତୁ।