library(rvest)
link = "https://es.wikipedia.org/wiki/Anexo:Países_por_tasa_de_homicidio_intencional"
path = '/html/body/div[2]/div/div[3]/main/div[3]/div[3]/div[1]/table[2]'
dataWS <- read_html(link)%>%html_nodes(xpath = path)%>%html_table()%>% .[[1]]
head(dataWS)
## # A tibble: 6 × 6
## Tasas de homicidio de la ONUDD…¹ Tasas de homicidio d…² Tasas de homicidio d…³
## <chr> <chr> <chr>
## 1 País / Territorio Tasa Conteo
## 2 Burundi 6,2 635
## 3 Eritrea 8,0 390
## 4 Kenia 4,9 2643
## 5 Sudán del Sur 14,1 1504
## 6 Malaui 1,8 279
## # ℹ abbreviated names:
## # ¹`Tasas de homicidio de la ONUDD el año más reciente.[15][16]`,
## # ²`Tasas de homicidio de la ONUDD el año más reciente.[15][16]`,
## # ³`Tasas de homicidio de la ONUDD el año más reciente.[15][16]`
## # ℹ 3 more variables:
## # `Tasas de homicidio de la ONUDD el año más reciente.[15][16]` <chr>,
## # `Tasas de homicidio de la ONUDD el año más reciente.[15][16]` <chr>, …
# Asignar el encabezado como nombres de columna
colnames(dataWS) <- dataWS[1,]
# Eliminar la primera fila
dataWS <- dataWS[-1,]
rownames(dataWS) <- NULL
str(dataWS)
## tibble [198 × 6] (S3: tbl_df/tbl/data.frame)
## $ País / Territorio: chr [1:198] "Burundi" "Eritrea" "Kenia" "Sudán del Sur" ...
## $ Tasa : chr [1:198] "6,2" "8,0" "4,9" "14,1" ...
## $ Conteo : chr [1:198] "635" "390" "2643" "1504" ...
## $ Región : chr [1:198] "África" "África" "África" "África" ...
## $ Subregión : chr [1:198] "África subsahariana" "África subsahariana" "África subsahariana" "África subsahariana" ...
## $ Año del dato : chr [1:198] "2016" "2015" "2022" "2012" ...
dataWS$Tasa <- gsub(",", ".", dataWS$Tasa)
colnames(dataWS)[colnames(dataWS) == "Año del dato"] <- "año"
dataWS$año <- substr(dataWS$año, 1, 4)
screapeo 2 reniec
url="https://www.gob.pe/institucion/reniec/funcionarios"
pagina_web=read_html(url)
css_nombre="h3.text-2xl"
nombre_html <- html_nodes(pagina_web,css_nombre)
nombre_texto <- html_text(nombre_html)
css_cargo="p"
cargo_html <- html_nodes(pagina_web,css_cargo)
cargo_texto <- html_text(cargo_html)
reniec <- data.frame(NOMBRE = nombre_texto, CARGO = cargo_texto)
head(reniec)
## NOMBRE CARGO
## 1 Carmen Milagros Velarde Koechlin Jefa Nacional
## 2 Gladis Virginia Cachay Espino Gerenta General
## 3 Gabriela Bertha Herrera Tan Secretaria General
## 4 Luis Baltazar Bezada Chavez Director de Registros Civiles
## 5 Lia Llanet Calderón Romero Directora del Registro Electoral
## 6 Juan Carlos Castro Pinto Director de Servicios Registrales
url="https://www.gob.pe/institucion/reniec/funcionarios?sheet="
css_cargo="p"
css_name="h3.text-2xl"
final_table = list()
for(i in 1:4) { # INPUT
webpage <- read_html(paste0(url, i)) #obtenemos el código html de las 4 páginas
cargo_texto <- webpage %>%
html_nodes(css_cargo) %>% # obtener el código html del css del cargo
html_text() # lo convertimos en un vector de texto
name_texto <- webpage %>%
html_nodes(css_name) %>% # obtener el código html del css del name
html_text() # lo convertimos en un vector de texto
final_table[[i]] <- data.frame(NOMBRE=name_texto, CARGO=cargo_texto) # OUTPUT: Con esto estamos creando una lista con 3 data frames que contenga las 3 páginas scrapeadas
}
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
datareniec = bind_rows(final_table)
head(datareniec)
## NOMBRE CARGO
## 1 Carmen Milagros Velarde Koechlin Jefa Nacional
## 2 Gladis Virginia Cachay Espino Gerenta General
## 3 Gabriela Bertha Herrera Tan Secretaria General
## 4 Luis Baltazar Bezada Chavez Director de Registros Civiles
## 5 Lia Llanet Calderón Romero Directora del Registro Electoral
## 6 Juan Carlos Castro Pinto Director de Servicios Registrales