Skip to content

AngelRysu/wikiscraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Monad-Based Stream Processing Framework

Instalaciones necesarias:

pip install -r ./requirements.txt

Ejecucion del archivo:

paso 1: Ejecutar el archivo main.py

  • python ./main.py -

Este mostrara un meno al usuario en el cual el unico requisitto es que exista un archivo pdf llamado "wikipedia_report.pdf" una vez creado el archivo, se podra generar el ciclo infinito con intervalos de tiempos aleatorios de 1 a 10 segundos.

El ciclo llamara al archivo Wikiscraper.py y ira agregando los datos en el archivo pdf que se genero anteriormente

El archivo wikiscraper.py analizara el contenido de la pagina y guardara valores como la palabra mas usada

-Funciones del archivo main.py - signal_handler(sig, frame): Manejador de señales para capturar interrupciones (Ctrl+C) y terminar el ciclo. stream_processing_loop(filename): Ejecuta un ciclo infinito que obtiene una página aleatoria de Wikipedia, analiza el texto y genera un reporte en PDF. main(): Menú interactivo para permitir al usuario crear el archivo PDF vacío o iniciar el ciclo de scraping y análisis.

  • Funciones del archivo wikiscraper.py - Clases: Monada: bind(func): Encadena una operación monádica, pasando el valor encapsulado a la función proporcionada. map(func): Aplica una función al valor encapsulado y lo envuelve en una nueva Monada. apply(monadaic_func): Aplica una función monádica al valor encapsulado. repr(): Representación en cadena de la Monada.

WikipediaScraper: get_random_wikipedia_page(): Obtiene el contenido de una página aleatoria de Wikipedia y lo envuelve en una Monada. Devuelve una tupla con el texto de la página y la URL.

TextAnalyzer: analyze_text(data): Analiza el texto obtenido de Wikipedia para encontrar las palabras más usadas, la palabra más larga, y el tema principal de la página. Realiza un conteo de las palabras más comunes (excluyendo las "stop words"), la palabra más larga, el promedio de longitud de las palabras y extrae el tema de la URL.

PDFGenerator: create_empty_pdf(filename): Crea un archivo PDF vacío si no existe ya, con el título "Wikipedia Text Analysis Report". generate_report(data, filename): Genera o agrega información a un archivo PDF con el análisis realizado en TextAnalyzer. Si el archivo ya existe, agrega una nueva página con la información analizada.

Preguntas que s ele hicieron chatGPT: "Como obtener contenido de una pagina aleatoria de wikipedia?" "Como hacer una funcion en python que modifique un archivo pdf y agregue mas paginas sin editar la pagina?"

horas invertidas en este proyecto : 6hrs

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages