Code Monkey home page Code Monkey logo

promiedos_scraping's Introduction

Promiedos

⚽🚀Live Football results & tables

Proyecto de WebScraping a Promiedos utilizando python para traer, parsear y almacenar los datos en archivos .json para luego manipularlos con Node.

⚙Lenguajes & tecnologías utilizadas

Python Node.js Express.js EJS JavaScript HTML CSS Beautiful Soup

  • Front end

    • Html
    • CSS
      • Flex
      • Grid
    • Javascript
  • Back End

    • NodeJS
      • Express
      • child_process
      • EJS view Engine
      • fs
    • Python
      • beautifulsoup4
      • requests
      • json
    • JSON

💡Funcionamiento

El proyecto cuenta con dos scripts hechos en python que se encargan de llevar a cabo el scraping:

  • getMatches.py: Se encarga de hacer una request a la página principal de PROMIEDOS para rescatar los datos del fixture del día.
  • getTables.py: Cuenta con un arreglo de paises que recorre para rescatar las tablas de la liga de cada país.

Ambos archivos parsean los datos recibidos y guardan la información obtenida en los archivos ubicados en /src/data.

Este proceso es ejecutado por index.js mediante un exec() de la biblioteca "child_process", y está diseñado para repetirse mediante un timer, de preferiblemente un minuto. Esta parte del código está comentada, para no saturar los servidores de Promiedos. Para que funcione solo debe descomentarla.

Cuando un cliente hace una request al servidor, éste se encarga de obtener los datos de los archivos json mediante la función fs.readFileSync() del módulo "fs", rescatando el fixture y la liga que haya elegido el usuario. Posteriormente se hace un render dinámico con la información obtenida haciendo uso del motor de vistas "ejs".

Cabe aclarar que aunque se actualicen los json cada 60 segundos, la página no ofrece un servicio 100% "live", ya que no existe una conexión persistente entre el servidor y el cliente. Por eso, si hay algún gol de un partido en vivo, el cliente no se enterará a menos que recargue la página.

📋Requerimientos

Debe tener instalado el intérprete de python y las bibliotecas requests y beautifulsoup4

Una vez instalado python, correr:

pip install beautifulsoup4
pip install requests

O, si usas un entorno virtual:

python -m pip install beautifulsoup4
python -m pip install requests

Posteriormente, ejecutar una terminal en la carpeta del proyecto y ejecutar:

npm install

Para levantar el servidor, correr en la terminal:

npm run start

Luego de esto se levantará el servidor en el puerto 3005, que puedes cambiar a tu antojo.

📂Estructura

├──index.js     # Entrypoint
├──package.json
├──package-lock.json
├──README.md
├──.gitignore
├──node_modules
├──public
    ├──styles
        ├──index.css
├──src
    ├──data
        ├──tables_data.json
        ├──matches_data.json
    ├──scripts
        ├──getMatches.py
        ├──getTables.py
    ├──views
        ├──home.ejs

Aclaración

  • Toda la información que recopila este proyecto pertenece a promiedos.
  • Este proyecto no tiene la intención de infringir derechos de autor ni violar los términos de servicio del sitio web mencionado.
  • La información obtenida se utiliza exclusivamente para fines personales y no será utilizada con fines comerciales.

🖼️View

Captura de pantalla de la página

promiedos_scraping's People

Contributors

tinchoran avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.