-
Notifications
You must be signed in to change notification settings - Fork 3
/
01-scraping_diputados.R
90 lines (69 loc) · 3.4 KB
/
01-scraping_diputados.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# packrat::restore()
packrat::init()
library(rvest)
library(purrr)
library(pdftools)
library(stringr)
library(tidyr)
library(tibble)
library(dplyr)
library(stringi)
source("functions.R")
robotstxt::get_robotstxt("https://parlamento.gub.uy")
robotstxt::paths_allowed("https://parlamento.gub.uy/documentosyleyes/documentos/diarios-de-sesion")
#······················
# setup dates
#······················
date_init <- "01-01-2017"
date_end <- "31-07-2019"
#······················
# diputados
#······················
url_diputados <- paste0("https://parlamento.gub.uy/documentosyleyes/documentos/diarios-de-sesion?Cpo_Codigo_2=D&Lgl_Nro=48&DS_Fecha%5Bmin%5D%5Bdate%5D=",
date_init,
"&DS_Fecha%5Bmax%5D%5Bdate%5D=",
date_end,
"&Ssn_Nro=&TS_Diario=&tipoBusqueda=T&Texto=")
# extraigo pdfs
pdf_diputados_pag1 <- extract_pdf(url_diputados, pag = 1)
pdf_diputados_pag2 <- extract_pdf(url_diputados, pag = 2)
pdf_diputados_pag3 <- extract_pdf(url_diputados, pag = 3)
pdf_diputados_pag4 <- extract_pdf(url_diputados, pag = 4)
pdf_diputados_pag5 <- extract_pdf(url_diputados, pag = 5)
# junto todos los pdfs
pdf_diputados <- bind_rows(pdf_diputados_pag1, pdf_diputados_pag2,
pdf_diputados_pag3, pdf_diputados_pag4,
pdf_diputados_pag5)
# extraigo fechas
pdf_fechas_diputados_pag1 <- extract_metadata(url_diputados, info = "fecha", pag = 1)
pdf_fechas_diputados_pag2 <- extract_metadata(url_diputados, info = "fecha", pag = 2)
pdf_fechas_diputados_pag3 <- extract_metadata(url_diputados, info = "fecha", pag = 3)
pdf_fechas_diputados_pag4 <- extract_metadata(url_diputados, info = "fecha", pag = 4)
pdf_fechas_diputados_pag5 <- extract_metadata(url_diputados, info = "fecha", pag = 5)
# junto todos las fechas y las convierto en un df
pdf_fechas_diputados <- c(pdf_fechas_diputados_pag1,
pdf_fechas_diputados_pag2,
pdf_fechas_diputados_pag3,
pdf_fechas_diputados_pag4,
pdf_fechas_diputados_pag5) %>%
tbl_df() %>%
transmute(fecha = as.Date(value, "%d-%m-%Y"))
# extraigo sesiones
pdf_sesion_diputados_pag1 <- extract_metadata(url_diputados, info = "sesion", pag = 1)
pdf_sesion_diputados_pag2 <- extract_metadata(url_diputados, info = "sesion", pag = 2)
pdf_sesion_diputados_pag3 <- extract_metadata(url_diputados, info = "sesion", pag = 3)
pdf_sesion_diputados_pag4 <- extract_metadata(url_diputados, info = "sesion", pag = 4)
pdf_sesion_diputados_pag5 <- extract_metadata(url_diputados, info = "sesion", pag = 5)
# junto todos las sesiones y las convierto en un df
pdf_sesion_diputados <- c(pdf_sesion_diputados_pag1,
pdf_sesion_diputados_pag2,
pdf_sesion_diputados_pag3,
pdf_sesion_diputados_pag4,
pdf_sesion_diputados_pag5) %>%
tbl_df() %>%
rename(sesion = value)
# hago un df con todo
pdf_diputados <- bind_cols(pdf_fechas_diputados, pdf_sesion_diputados, pdf_diputados) %>%
unite("fecha_sesion", c(fecha, sesion), remove = FALSE) %>%
distinct() # la primer sesión de la segunda página es igual a la última sesión de la primera página
# saveRDS(pdf_diputados, "data/pdf_diputados")