Получить URL из поиска с помощью rvest - PullRequest
2 голосов
/ 02 мая 2019

Я пытаюсь получить URL-адреса для поиска по сайту Western Union из нигерийских провинций.В частности, я хочу найти на этой следующей веб-странице вектор провинций и для каждого поиска сохранить соответствующий URL-адрес, чтобы затем создать веб-ссылку для каждой из полученных ссылок.Я знаю, как сделать второй шаг, но не первый.В частности, мой код

#install.packages("selectr")
#install.packages("xml2")
library(selectr)
library(xml2)
library(rvest)
library(xlsx)
provinces = as.vector(read.xlsx("provinces.xls", 1)[,1])

URL <- "https://locations.westernunion.com/search/nigeria/"
webpage <- read_html(URL)

Но теперь я не знаю, как перейти к поиску и сохранению URL-адреса для каждой из моих провинций из вектора, упомянутого ранее.

1 Ответ

0 голосов
/ 05 мая 2019

Мы можем получить атрибут href, который заканчивается "Nigeria" тега div с классом info

library(rvest)
library(dplyr)

URL <- "https://locations.westernunion.com/search/nigeria/"

URL %>%
  read_html() %>%
  html_nodes("div.info a") %>%
  html_attr("href") %>%
  grep("Nigeria$", ., value = TRUE)

#[1] "/ng/ebonyi/onueke/47908be48d424b6fba108b020c60b517?loc=+Nigeria"      
#[2] "/ng/plateau/plateau/393aa00a34ded9201b3c0c2fd70c02b3?loc=+Nigeria"    
#[3] "/ng/bayelsa/otuoke/046d3ae90f58169a7cc896b96e9ccfac?loc=+Nigeria"     
#[4] "/ng/ogun/abeokuta/fab00c55961bc48312029f13e7b75277?loc=+Nigeria"      
#[5] "/ng/ogun/idi-iroko/63803a3c50d4cb4b44f473cfd8cb96b1?loc=+Nigeria"     
#[6] "/ng/-/akwaibom/4c1dd6c2953a0d396500157d97ddf0ca?loc=+Nigeria"  
#....

Однако я думаю, что это только часть URL, и вам нужно добавить "https://locations.westernunion.com" к каждой извлеченной части, чтобы получить точный URL

URL %>%
  read_html() %>%
  html_nodes("div.info a") %>%
  html_attr("href") %>%
  grep("Nigeria$", ., value = TRUE) %>%
  paste0("https://locations.westernunion.com", .)

#[1] "https://locations.westernunion.com/ng/ebonyi/onueke/47908be48d424b6fba108b020c60b517?loc=+Nigeria"      
#[2] "https://locations.westernunion.com/ng/plateau/plateau/393aa00a34ded9201b3c0c2fd70c02b3?loc=+Nigeria"    
#[3] "https://locations.westernunion.com/ng/bayelsa/otuoke/046d3ae90f58169a7cc896b96e9ccfac?loc=+Nigeria"     
#[4] "https://locations.westernunion.com/ng/ogun/abeokuta/fab00c55961bc48312029f13e7b75277?loc=+Nigeria"      
#[5] "https://locations.westernunion.com/ng/ogun/idi-iroko/63803a3c50d4cb4b44f473cfd8cb96b1?loc=+Nigeria"     
#[6] "https://locations.westernunion.com/ng/-/akwaibom/4c1dd6c2953a0d396500157d97ddf0ca?loc=+Nigeria" 
#....

и теперь эти URL-адреса можно использовать для второго шага процесса.

...