Scraping
Obtencion de Datos no estructurados.
A traves del Blog del Banco Mundial se han extraido los enunciados de noticias tomando en consideracion el uso de la palabra clave tarjeta de credito.
busqueda = "tarjeta de crédito"
news_pag = "https://aif.bancomundial.org/news?type=blog"
html_dir = paste0(news_pag,"search?q=",gsub(" ","+",busqueda),"&hl=es-419&gl=US&ceid=US:es-419")
google_news = read_html(html_dir)
noticias = html_nodes(google_news,".news_item_title")
## [1] "\n ¿Qué es la AIF?\n "
## [2] "\n El Banco Mundial adelanta la AIF-20 para ayudar a los países más pobres a recuperarse de la crisis provocada por la COVID-19\n "
## [3] "\n La Asociación Internacional de Fomento y el sector privado unen sus fuerzas para combatir la COVID-19 (coronavirus) en los países más frágiles\n "
## [4] "\n El Banco Mundial anuncia un incremento de USD 2200 millones dirigido a los refugiados y a las comunidades receptoras\n "
## [5] "\n La comunidad internacional destina USD 82 000 millones para renovar su compromiso con los países más pobres del mundo\n "
## [6] "\n Un nuevo comienzo para los excombatientes en Rwanda\n "
## [7] "\n Banco Mundial anuncia apoyo a Bangladesh para ir en ayuda de los refugiados rohinyás\n "
## [8] "\n La AIF emite su primer bono y abre camino a un nuevo modelo de financiamiento para el desarrollo El bono inaugural de la AIF recauda USD 1500 millones de inversionistas de todo el mundo*\n "
## [9] "\n Afganistán: aumenta la matrícula escolar de niñas gracias a la construcción de nuevas instalaciones\n "
## [10] "\n Libro “Tales of Skills” recoge testimonios de 10 beneficiarios del proyecto educativo STEP de Bangladesh\n "
## [11] "\n El apoyo del Grupo Banco Mundial a los países en desarrollo fue de casi USD 59 000 millones en el ejercicio de 2017\n "
## [12] "\n Se designa a Kristalina Georgieva directora general del BIRF y la AIF\n "
## [13] "\n Discurso de Jim Yong Kim, presidente del Grupo Banco Mundial, ante la sesión plenaria\n "
## [14] "\n En una aldea de Afganistán, el acceso a agua potable disminuye las enfermedades transmitidas por el agua\n "
## [15] "\n Etiopía: Empresarias consiguen financiamiento gracias al Proyecto de desarrollo de la capacidad empresarial de la mujer (WEDP)\n "
## [16] "\n Camerún: Crear oportunidades para lograr el crecimiento inclusivo y luchar contra la pobreza\n "
## [17] "\n Apoyo a la consolidación del Estado y el desarrollo en Afganistán\n "
## [18] "\n Abastecimiento de agua potable para 1,3 millones de habitantes rurales en Viet Nam\n "
A traves de la pagina de Puntos Globales, se ha extraido la informacion correspondiente a las mejores tarjetas de credito en Ecuador.
url <- "https://www.puntosglobales.com/las-mejores-ofertas-de-tarjetas-de-credito/las-mejores-tarjetas-de-credito-de-ecuador/"
blog <- read_html(url)
tarjeta_html <- html_nodes(blog, ".fg-caption-title")
html_text(tarjeta_html )
## [1] "Lifemiles Platinum Banco Guayaquil"
## [2] "Lifemiles Clásica Banco de Guayaquil"
## [3] "Visa Signature Lifemiles Ecuador"
## [4] "American Express AAdvantage Elite"
## [5] "American Express AAdvantage Platinum"
Obtencion de Datos Estructurados
A traves de Google Noticias, se extraeran los titulares de noticias referentes a tarjetas de credito, los cuales seran presentados a manera de un data frame estructurado.
# Funciones
obtieneNoticiasData = function(noticia){
news_pag = "https://news.google.com/"
titular = noticia %>% html_node("h3") %>% html_text()
fecha = noticia %>% html_node("time") %>% html_attr("datetime")
diario = noticia %>% html_node("a.wEwyrc.AVN2gc.uQIVzc.Sksgp") %>% html_text()
link_enmascarado = noticia %>% html_node("h3 a") %>% html_attr("href")
link_enmascarado = paste0(news_pag,substring(link_enmascarado,3))
link_enmascarado = read_html(link_enmascarado)
link = link_enmascarado %>%
html_node(css='c-wiz div div c-wiz div a') %>%
html_attr("href")
noticiaDF = data.frame(Titular=titular, Fecha=fecha, Diario=diario, Link=link, stringsAsFactors = F)
return(noticiaDF)
}
obtieneNoticiasBusqueda = function(busqueda){
news_pag = "https://news.google.com/"
html_dir = paste0(news_pag,"search?q=",gsub(" ","+",busqueda),"&hl=es-419&gl=US&ceid=US:es-419")
google_news = read_html(html_dir)
noticias = google_news %>%
html_nodes(css = "c-wiz div div div div main c-wiz div div div article")
noticiasDF = map(noticias,obtieneNoticiasData)
noticiasDF = bind_rows(noticiasDF)
noticiasDF = noticiasDF[!is.na(noticiasDF$Titular),]
return(noticiasDF)
}
# Dataframes de titulares ----------
noticiasTcreditoDF = obtieneNoticiasBusqueda(busqueda="tarjeta de crédito when:1d")
# Lectura de links de noticias ----------
noticia = read_html(noticiasTcreditoDF$Link[5])
css = ".paragraphs"
text_nodes = noticia %>%
html_nodes(css = css) %>%
html_children()
text_nodes = text_nodes[is.na(sapply(text_nodes,function(x)html_attr(x,'class')))]
text = text_nodes %>%
html_text()
text = paste0(text, collapse = " ")