Cylchdroi dirprwyon yn httr R a dosrannu'r HTML a lawrlwythwyd
Cylchdroewch resi dirprwy ar gyfer pob cais httr a throsglwyddwch y beitiau a lawrlwythwyd i xml2 a rvest.
Cadwch y dewis dirprwy ar y gweithrediad lawrlwytho. Unwaith y bydd httr wedi dychwelyd y dudalen, dosrennwch feitiau'r ymateb hwnnw yn lle trosglwyddo'r URL i lawrlwythwr arall.
O ystyried fector urls a data frame proxies nad yw'n wag gyda cholofnau host a phort cyfanrif:
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"))
}
Ar gyfer ceisiadau tudalen cyhoeddus a ganiateir drwy gyfryngwyr cyhoeddus, mae'r rhestr dirprwyon HTTP yn darparu ymgeiswyr ar gyfer colofnau host a phort y data frame. Mae'r mynegai yn cylchdroi o'r rhes ddirprwy gyntaf i'r un olaf ac yn troi'n ôl i'r dechrau. Mae gan bob galwad ei ffurfweddiad dirprwy ei hun; gall y broses R barhau i redeg.
Mae'r tudalennau canlyniadol yn cynnwys dogfennau HTML a ddosrannwyd. Defnyddiwch rvest::html_elements a'r swyddogaethau echdynnu sydd eu hangen ar y dogfennau hynny. Byddai trosglwyddo URL i read_html yn cychwyn adalwad newydd gyda ffurfweddiad rhwydwaith y llwybr hwnnw ei hun.
Ar gyfer dirprwyon dilys, trosglwyddwch y cyfrif a ddewiswyd drwy ddadleuon username a password use_proxy. Nid yw pwynt terfyn gwahanol yn gwarantu IP allan cyhoeddus gwahanol, felly dewiswch y pwll yn ôl ymddygiad allan gwirioneddol y gwasanaeth.