Memutar proxy dalam httr R dan menghuraikan HTML yang dimuat turun
Tukar baris proxy pada setiap permintaan httr dan hantar bait yang dimuat turun kepada xml2 dan rvest.
Kekalkan pemilihan proxy pada operasi muat turun. Selepas httr mengembalikan halaman, huraikan bait respons itu dan bukannya menghantar URL kepada pemuat turun lain.
Diberikan vektor urls dan data frame proxies yang tidak kosong dengan lajur host dan port integer:
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"))
}
Untuk permintaan halaman awam yang dibenarkan melalui perantara awam, senarai proxy HTTP menyediakan calon untuk lajur host dan port. Indeks berputar dari baris proxy pertama hingga terakhir dan kembali ke permulaan. Setiap panggilan mempunyai konfigurasi proxy sendiri; proses R boleh terus berjalan.
Halaman yang terhasil mengandungi dokumen HTML yang dihuraikan. Gunakan rvest::html_elements dan fungsi pengekstrakan yang diperlukan pada dokumen tersebut. Menghantar URL kepada read_html sebaliknya akan memulakan pengambilan baharu dengan konfigurasi rangkaian laluan itu sendiri.
Untuk proxy yang disahkan, hantar akaun yang dipilih melalui argumen username dan password use_proxy. Titik akhir yang berbeza tidak menjamin IP keluar awam yang berbeza, jadi pilih kumpulan mengikut tingkah laku keluar sebenar perkhidmatan.