Title: | Scraping Chilean Media |
---|---|
Description: | A system for extracting news from Chilean media, specifically through Web Scapping from Chilean media. The package allows for news searches using search phrases and date filters, and returns the results in a structured format, ready for analysis. Additionally, it includes functions to clean the extracted data, visualize it, and store it in databases. All of this can be done automatically, facilitating the collection and analysis of relevant information from Chilean media. |
Authors: | Exequiel Trujillo [aut, cre, cph, fnd], Ismael Aguayo [aut, fnd], Klaus Lehmann [aut, fnd] |
Maintainer: | Exequiel Trujillo <[email protected]> |
License: | MIT + file LICENSE |
Version: | 1.1.0 |
Built: | 2025-02-19 05:10:25 UTC |
Source: | https://github.com/exetrujillo/datamedios |
Esta funcion agrega datos a una tabla MySQL utilizando una API que espera datos en formato JSON.
agregar_datos_unicos(data)
agregar_datos_unicos(data)
data |
Un data frame con los datos a insertar. |
No retorna ningun valor.
# Agregar datos unicos noticias <- extraer_noticias_max_res("tesla", max_results=10, subir_a_bd = FALSE) agregar_datos_unicos(noticias)
# Agregar datos unicos noticias <- extraer_noticias_max_res("tesla", max_results=10, subir_a_bd = FALSE) agregar_datos_unicos(noticias)
Esta funcion procesa una columna de texto en un dataframe y extrae los parrafos que coinciden con los sinonimos proporcionados.
extraccion_parrafos(datos, sinonimos = c())
extraccion_parrafos(datos, sinonimos = c())
datos |
Data frame que contiene los datos de entrada con la columna "contenido". |
sinonimos |
Vector de sinonimos que se incluiran en la busqueda. |
Data frame con una columna adicional 'parrafos_filtrados' que contiene los parrafos extraidos como listas.
datos <- extraer_noticias_max_res("inteligencia artificial", max_results = 140, subir_a_bd = FALSE) datos <- extraccion_parrafos(datos, sinonimos = c("IA", "AI"))
datos <- extraer_noticias_max_res("inteligencia artificial", max_results = 140, subir_a_bd = FALSE) datos <- extraccion_parrafos(datos, sinonimos = c("IA", "AI"))
Esta funcion permite realizar una extraccion automatizada de noticias desde la API de BioBio.cl utilizando un rango de fechas.
extraer_noticias_fecha( search_query, fecha_inicio, fecha_fin, subir_a_bd = TRUE )
extraer_noticias_fecha( search_query, fecha_inicio, fecha_fin, subir_a_bd = TRUE )
search_query |
Una frase de busqueda (obligatoria). |
fecha_inicio |
Fecha de inicio del rango de busqueda en formato "YYYY-MM-DD" (obligatoria). |
fecha_fin |
Fecha de fin del rango de busqueda en formato "YYYY-MM-DD" (obligatoria). |
subir_a_bd |
por defecto TRUE, FALSE para test y cosas por el estilo (opcional). |
Un dataframe con las noticias extraidas.
noticias <- extraer_noticias_fecha("inteligencia artificial", "2025-01-01", "2025-02-24", subir_a_bd = FALSE)
noticias <- extraer_noticias_fecha("inteligencia artificial", "2025-01-01", "2025-02-24", subir_a_bd = FALSE)
Esta funcion permite realizar una extraccion automatizada de noticias desde la API de BioBio.cl.
extraer_noticias_max_res(search_query, max_results = NULL, subir_a_bd = TRUE)
extraer_noticias_max_res(search_query, max_results = NULL, subir_a_bd = TRUE)
search_query |
Una frase de busqueda (obligatoria). |
max_results |
Numero maximo de resultados a extraer (opcional, por defecto todos). |
subir_a_bd |
por defecto TRUE, FALSE para test y cosas por el estilo (opcional). |
Un dataframe con las noticias extraidas.
noticias <- extraer_noticias_max_res("inteligencia artificial", max_results = 100, subir_a_bd = FALSE)
noticias <- extraer_noticias_max_res("inteligencia artificial", max_results = 100, subir_a_bd = FALSE)
Esta funcion genera un grafico de linea que muestra la cantidad de publicaciones agrupadas por mes.
grafico_notas_por_mes(datos, titulo, fecha_inicio = NULL, fecha_fin = NULL)
grafico_notas_por_mes(datos, titulo, fecha_inicio = NULL, fecha_fin = NULL)
datos |
Data frame con los datos procesados, que debe incluir la columna 'fecha' en formato YYYY-MM-DD. |
titulo |
Texto que aparecera en el titulo del grafico. |
fecha_inicio |
Fecha de inicio para la construccion del grafico en formato YYYY-MM-DD (opcional). |
fecha_fin |
Fecha de finalizacion para la construccion del grafico en formato YYYY-MM-DD (opcional). |
Un grafico ggplot2 que muestra la cantidad de publicaciones por mes.
datos <- extraer_noticias_fecha("cambio climatico", "2024-01-01","2025-01-01", subir_a_bd = FALSE) grafico_notas_por_mes(datos, titulo = "Cambio Climatico", fecha_inicio = "2024-01-01", fecha_fin = "2024-06-06")
datos <- extraer_noticias_fecha("cambio climatico", "2024-01-01","2025-01-01", subir_a_bd = FALSE) grafico_notas_por_mes(datos, titulo = "Cambio Climatico", fecha_inicio = "2024-01-01", fecha_fin = "2024-06-06")
Esta funcion permite realizar una consulta inicial a la API de BioBio.cl utilizando una frase de busqueda.
init_req_bbcl(search_query)
init_req_bbcl(search_query)
search_query |
Una frase de busqueda (obligatoria). |
Un dataframe con el primer caso de la busqueda.
primer_caso <- init_req_bbcl("inteligencia artificial")
primer_caso <- init_req_bbcl("inteligencia artificial")
Esta funcion permite limpiar por completo las notas eliminando codigos y secciones irrelevantes. Verifica que el input sea un data frame con una columna llamada 'contenido'.
limpieza_notas(datos, sinonimos = c())
limpieza_notas(datos, sinonimos = c())
datos |
Data frame donde estan almacenadas las notas y con la funcion extraccion_parrafos ya operada. |
sinonimos |
Una lista de character |
Un dataframe con el contenido limpio en la columna contenido_limpio
datos <- extraer_noticias_max_res("inteligencia artificial", max_results= 150, subir_a_bd = FALSE) datos <- extraccion_parrafos(datos) datos_proc <- limpieza_notas(datos, sinonimos = c("IA", "AI"))
datos <- extraer_noticias_max_res("inteligencia artificial", max_results= 150, subir_a_bd = FALSE) datos <- extraccion_parrafos(datos) datos_proc <- limpieza_notas(datos, sinonimos = c("IA", "AI"))
Esta funcion procesa la columna 'contenido_limpio' de un dataframe, tokeniza el texto, cuenta la frecuencia de cada palabra y genera una tabla con las palabras mas frecuentes.
tabla_frecuencia_palabras(datos, max_words, stop_words = NULL)
tabla_frecuencia_palabras(datos, max_words, stop_words = NULL)
datos |
Data frame que contiene la columna 'contenido_limpio'. |
max_words |
Numero maximo de palabras que se mostraran en la tabla. |
stop_words |
Vector opcional de palabras que se deben excluir del conteo. |
Una tabla con las palabras mas frecuentes.
datos <- data.frame( contenido_limpio = c( "La ministra de Defensa Maya Fernandez enfrenta cuestionamientos el presidente Gabriel Boric solicita transparencia en los procesos. Renovacion Nacional pide la renuncia de Maya Fernandez debido a la polemica. La transparencia es fundamental en la politica y la gestion publica" ), stringsAsFactors = FALSE ) # Probar la funcion con el dataframe de ejemplo tabla_frecuencia_palabras(datos, max_words = 5, stop_words = c())
datos <- data.frame( contenido_limpio = c( "La ministra de Defensa Maya Fernandez enfrenta cuestionamientos el presidente Gabriel Boric solicita transparencia en los procesos. Renovacion Nacional pide la renuncia de Maya Fernandez debido a la polemica. La transparencia es fundamental en la politica y la gestion publica" ), stringsAsFactors = FALSE ) # Probar la funcion con el dataframe de ejemplo tabla_frecuencia_palabras(datos, max_words = 5, stop_words = c())
Esta funcion permite realizar una nube de palabras con las palabras más frecuentes del corpus de noticias.
word_cloud(datos, max_words, stop_words = NULL)
word_cloud(datos, max_words, stop_words = NULL)
datos |
data frame que incluye la columna contenido_limpio. |
max_words |
Cantidad maxima de palabras que apareceran en la nube. |
stop_words |
Definir las palabras que seran ignoradas en la visualizacion. Debe ser un vector de carácteres. |
Una nube de palabras con las palabras mas frecuentes.
datos <- extraer_noticias_fecha("Monsalve", "2024-01-01","2025-01-01", subir_a_bd = FALSE) datos_proc <- limpieza_notas(datos) word_cloud(datos_proc, max_words = 50, stop_words = c("es", "la"))
datos <- extraer_noticias_fecha("Monsalve", "2024-01-01","2025-01-01", subir_a_bd = FALSE) datos_proc <- limpieza_notas(datos) word_cloud(datos_proc, max_words = 50, stop_words = c("es", "la"))