The English version of this Readme can be read in here.
EventPoints es uno de los proyectos desarrollados dentro de la comunidad Open Source Weekends.
EventPoints es una agenda web de eventos tecnológicos en España que utilizando técnicas de scraping lee los eventos disponibles de diversas fuentes.
EventPoints tiene dos repositorios principales:
- Backend: Este repositorio. Contiene tanto el código de los scrapers como el del API que sirve los eventos.
- Frontend: Este repositorio contiene una aplicación React que consultando el API de este proyecto permite consultar, filtrar y geolocalizar los distintos eventos.
El repositorio tiene dos bloques fundamentales estructurados en dos carpetas distintas:
- api: API Rest desarrollada con Node.js, Pillarsjs y base de datos GoblinDB que sirve la información obtenida por los scrapers.
- scrapers: Código fuente de los diferentes scrapers del proyecto que una vez obtenida la información lo almacena.
Para instalar las dependencias necesitadas del API requiere que estemos en el directorio conteniendo el API y ejecutar el comando:
npm install
Para ejecutar el API usa el comando:
npm start
Una vez lanzado puedes consultar el listado de eventos en --> http://localhost:3000/api/v1/events
La Documentación del API en swagger se encuentra en --> http://localhost:3000/api/v1/spec
Hay varios scrapers desarrollados en Python con la libreria Scrapy.
Para instalar y ejecutar los scrapers de Python necesitas:
- Python Versión 3.6
- Pip Versión 18.1
Instrucciones:
- Crear venv con el comando
python3 -m venv ./venv
- Instalar las dependencias despues con el comando
pip3 install -r requirements.txt
- Si usas Python 3.7, es posible que de un error que se puede solucionar ejecutando el comando
pip3 install git+https://github.com/twisted/twisted.git@trunk
Para ejecutar la araña- spider o el scrapper- necesitas correr el comando scrapy crawl {spider_name} -o {json_path}
Sobre el anterior comando, remplaza para producir el resultado correcto lo siguiente:
spider_name
: El nombre de la araña,json_path
: El archivo Json donde se volcara el Scrapeado producido por la araña.
Scrapy escribe al final del fichero por lo que en sucesivas ejecuciones habría que borrar el archivo JSON si ya existe.
Un ejemplo de esto es:
scrapy crawl meetup -o output/meetup.json
Para instalar R (en Linux basado en Debian):
- Instalar dependencias previas
apt install libcurl4-openssl-dev libssl-dev libxml2-dev
- Instalar R en si
apt install r-base
- Arrancar el entorno de ejecución de R (con sudo):
sudo -i R
- Instalar las dependencias del scraper:
install.packages("tidyverse")
Para ejecutar desde consola uno de los spiders de R ejecutaremos el siguiente comando:
R CMD BATCH {spider_name}.R {json_path}
Siendo spider_name
el nombre de la araña y json_path
el JSON en el que se va a
volcar el scrapeo.
- Facilitador:
- Daniel Gacía (Slack:@DGJones / GitHub:@danielgj))
- Mentores:
- Daniel Gacía (Slack:@DGJones / GitHub:@danielgj))
- Jorge Baumann (Slack:@jbaumann / GitHub:@baumannzone)
- Ricardo García-Duarte (Slack:@RicardoGDM / GitHub:@rgarciaduarte)
- Theba Gomez (Slack:@KoolTheba / GitHub:@KoolTheba)
- Ulises Gascon (Slack:@ulisesgascon / GitHub:@UlisesGascon)
- Canal de Slack: *#pr_eventpoints_new