ໝຸນ proxy ໃນ httr ຂອງ R ແລະ ວິເຄາະ HTML ທີ່ດາວໂຫຼດມາ
ສະຫຼັບແຖວ proxy ໃນແຕ່ລະຄຳຮ້ອງ httr ແລະ ສົ່ງ byte ທີ່ດາວໂຫຼດມາໃຫ້ xml2 ແລະ rvest.
ເກັບການເລືອກ proxy ໄວ້ໃນຂັ້ນຕອນດາວໂຫຼດ. ເມື່ອ httr ສົ່ງໜ້າກັບມາ, ໃຫ້ວິເຄາະ byte ຂອງຄຳຕອບນັ້ນ ແທນທີ່ຈະສົ່ງ URL ໄປໃຫ້ຕົວດາວໂຫຼດອື່ນ.
ຖ້າໃຫ້ vector urls ແລະ data frame proxies ທີ່ບໍ່ຫວ່າງເປົ່າ ພ້ອມຖັນ host ແລະ port ແບບຈຳນວນເຕັມ:
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"))
}
ສຳລັບຄຳຮ້ອງໜ້າສາທາລະນະທີ່ອະນຸຍາດຜ່ານຕົວກາງສາທາລະນະ, ລາຍຊື່ proxy HTTP ໃຫ້ຜູ້ສະໝັກສຳລັບຖັນ host ແລະ port. ດັດຊະນີຈະໝຸນຈາກແຖວ proxy ທຳອິດໄປຮອດແຖວສຸດທ້າຍ ແລ້ວກັບໄປເລີ່ມຕົ້ນໃໝ່. ແຕ່ລະການເອີ້ນມີການຕັ້ງຄ່າ proxy ຂອງຕົນເອງ; ຂະບວນການ R ສາມາດສືບຕໍ່ເຮັດວຽກ.
ໜ້າທີ່ໄດ້ມາມີເອກະສານ HTML ທີ່ວິເຄາະແລ້ວ. ໃຫ້ໃຊ້ rvest::html_elements ແລະ ຟັງຊັນສະກັດເອົາທີ່ຈຳເປັນກັບເອກະສານເຫຼົ່ານັ້ນ. ການສົ່ງ URL ໃຫ້ read_html ແທນ ຈະເລີ່ມການດຶງໃໝ່ດ້ວຍການຕັ້ງຄ່າເຄືອຂ່າຍຂອງເສັ້ນທາງນັ້ນເອງ.
ສຳລັບ proxy ທີ່ມີການພິສູດຕົວຕົນ, ໃຫ້ສົ່ງບັນຊີທີ່ເລືອກຜ່ານອາກູເມັນ username ແລະ password ຂອງ use_proxy. ຈຸດປາຍທາງອື່ນບໍ່ຮັບປະກັນ IP ອອກສາທາລະນະ ທີ່ແຕກຕ່າງ, ດັ່ງນັ້ນເລືອກສະລອງຕາມພຶດຕິກຳອອກຕົວຈິງຂອງບໍລິການ.