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 مختلف عوامی اخراجی IP کی ضمانت نہیں دیتا، اس لیے پول سروس کے حقیقی اخراجی رویے کے مطابق چنیں۔