R хэлний httr дээр прокси эргүүлэх ба татсан HTML-ийг задлан шинжлэх
httr хүсэлт бүрт прокси мөрийг сольж, татсан байтуудыг xml2 болон rvest-д дамжуулна.
Прокси сонголтыг татах үйлдлийн дотор байлга. httr хуудсыг буцаасны дараа URL-ыг өөр татагч руу дамжуулахын оронд тэр хариултын байтуудыг задлан шинжил.
urls вектор болон host, бүхэл тоон port баганатай хоосон бус proxies data frame өгөгдсөн гэж үзье:
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-г батлахгүй тул сангыг үйлчилгээний бодит гарах зан төлөвт тохируулан сонго.