datamedios es un paquete de R diseñado para facilitar la extracción automatizada de noticias desde medios de comunicación chilenos, haciendo web scraping de medios chilenos. Este paquete permite realizar búsquedas de noticias y filtrarlas por rangos de fechas, entregando los resultados en un formato estructurado y listo para su análisis. Además, incluye funcionalidades para almacenar los datos extraídos en una base de datos de manera opcional (documentación completa).
Para instalarlo desde CRAN:
Instala datamedios desde CRAN:
install.packages("datamedios")
library(datamedios)Alternativamente, para instalar el paquete desde GitHub, sigue los siguientes pasos:
-
Asegúrate de tener instalado el paquete
devtools. Si no lo tienes, instálalo ejecutando:install.packages("devtools") -
Instala
datamediosdesde el repositorio de GitHub:devtools::install_github("exetrujillo/datamedios")
Esta función permite filtrar noticias por un rango de fechas específico, además de aplicar una frase de búsqueda.
search_query: Frase de búsqueda (obligatorio excepto para Ciper).fecha_inicio: Fecha de inicio en formato"YYYY-MM-DD"(obligatorio).fecha_fin: Fecha de fin en formato"YYYY-MM-DD"(obligatorio).subir_a_bd: Por defecto está seteado en TRUE, para los tests lo dejamos en FALSE (opcional).fuentes:Es un string con las fuentes a extraer. Puede ser:"todas": Todas las fuentes disponibles."bbcl": BíoBío como única fuente"emol-todas": Búsqueda simultánea en las fuentes "emol", "guioteca" y "mediosregionales"."emol": Noticias no pagas de El Mercurio."mediosregionales": Noticias de los diarios regionales propiedad de El Mercurio."guioteca": Guías especializadas de Emol."ciper": Publicaciones de Ciper Chile.- O una combinación, solo separando medios por comas, por ejemplo:
fuentes = "mediosregionales, bbcl".
Un data.frame con las siguientes columnas:
ID: Identificador de la noticia.titulo: Título de la noticia.contenido: Contenido completo.contenido limpio: Resumen o extracto.url: Enlace a la noticia.url_imagen: Url con la imagen principal de la noticia.autor: Autor de la noticia.fecha: Fecha de publicación (formato 'YYYY-MM-DD').resumen: Resumen de la IA o bajada de la nota, según disponibilidad.search_query: Palabra o frase de búsqueda por la que se obtuvo los datos.medio: Medio al que corresponde la noticia.temas: Categorías de la noticia.
# Buscar noticias entre el 18 de octubre de 2019 al 18 de octubre de 2020
noticias <- extraer_noticias_fecha("estallido social", "2019-10-18", "2020-10-18", fuentes = "bbcl, emol, mediosregionales")Esta función permite obtener noticias desde medios chilenos utilizando una frase de búsqueda. Además, puedes limitar el número de resultados a extraer.
search_query: Frase de búsqueda (obligatorio excepto para Ciper).max_results: Máximo número de resultados a extraer (opcional).subir_a_bd: Por defecto está seteado en TRUE, pero para los tests lo dejamos en FALSE (opcional).fuentes:Es un string con las fuentes a extraer. Funciona de la misma forma que en extraer_noticias_fecha. Por defecto extrae de todas las fuentes (opcional).
Un data.frame similar al de extraer_noticias_fecha, pero filtrado por max_results.
# Buscar noticias relacionadas con "inteligencia artificial"
noticias <- extraer_noticias_max_res("inteligencia artificial", max_results = 100, fuentes= "bbcl")Adicionalmente, el paquete incluye funciones de limpieza, manejo y visualización de las noticias extraídas. Para visitar la documentación de todos los códigos haga click aquí.
Este paquete utiliza las siguientes dependencias de R para su correcto funcionamiento:
-
dplyr: Manipulación y análisis de datos. -
httr: Realización de solicitudes HTTP para interactuar con APIs. -
magrittr: Uso de operadores como%>%para flujos de trabajo más legibles. -
jsonlite: Procesamiento y conversión de datos en formato JSON. -
utils: Funciones utilitarias básicas incluidas en R. -
rlang: Herramientas para manipulación de expresiones. -
wordcloud2: Generación de nubes de palabras interactivas. -
tidytext: Análisis de texto basado en datos ordenados. -
lubridate: Manejo y análisis de datos temporales. -
rvest: Web scraping de páginas HTML. -
stringr: Manejo y manipulación de cadenas de texto. -
xml2: Lectura y manejo de datos en formato XML. -
purrr: Programación funcional con listas y vectores. -
DT: Generación de tablas interactivas en HTML desde R. -
ggplot2: Creación de gráficos sofisticados y personalizados basados en la gramática de los gráficos. -
plotly: Creación de gráficos interactivos y visualizaciones dinámicas. -
parallel: Ejecución paralela multinucleo. -
pbapply: Barra de progreso.
datamedios está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Este paquete fue desarrollado por:
- Exequiel Trujillo (contacto: exequiel.trujillo@ug.uchile.cl)
- Ismael Aguayo (contacto: ismael.aguayo@ug.uchile.cl)
- Klaus Lehmann (contacto: klehmann@fen.uchile.cl)
Contribuciones adicionales de:
- Matias Gallardo (contacto: matias.gallardo.v@ug.uchile.cl)