Välityspalvelinten kierrätys R:n httr:ssä ja ladatun HTML:n jäsentäminen
Vaihda välityspalvelinriviä joka httr-pyynnöllä ja välitä ladatut tavut xml2:lle ja rvestille.
Pidä välityspalvelimen valinta lataustoiminnossa. Kun httr on palauttanut sivun, jäsennä kyseisen vastauksen tavut sen sijaan, että antaisit URL:n toiselle lataajalle.
Kun käytössä on vektori urls ja ei-tyhjä data frame proxies, jossa on host- ja kokonaisluku-port-sarakkeet:
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"))
}
Julkisten sivujen pyynnöille, jotka on sallittu julkisten välittäjien kautta, HTTP-välityspalvelinluettelo tarjoaa ehdokkaita data framen host- ja port-sarakkeisiin. Indeksi kiertää ensimmäisestä välityspalvelinrivistä viimeiseen ja palaa alkuun. Jokaisella kutsulla on oma välityspalvelinasetuksensa; R-prosessi voi jatkaa toimintaansa.
Tuloksena olevat sivut sisältävät jäsennettyjä HTML-dokumentteja. Käytä niihin rvest::html_elements-funktiota ja tarvittavia poimintafunktioita. URL:n antaminen read_html-funktiolle käynnistäisi sen sijaan uuden noutokerran kyseisen polun omilla verkkoasetuksilla.
Todennetuille välityspalvelimille välitä valittu tili use_proxyn username- ja password-argumenteilla. Toinen päätepiste ei takaa toista julkista lähtö-IP:tä, joten valitse allas palvelun todellisen lähtökäyttäytymisen mukaan.