Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Price Scraper — Alkosto

Streamlit App

Scraper de precios automatizado que extrae productos de Alkosto Colombia, los visualiza en un dashboard interactivo y envía alertas por email cuando hay descuentos.

Demo

https://price-scraper-for-alkosto.streamlit.app/

Arquitectura

price-scraper/
├── src/
│   ├── scraper.py      # Scraping vía Algolia API
│   ├── dashboard.py    # Dashboard Streamlit
│   ├── notifier.py     # Alertas por Gmail
│   ├── scheduler.py    # Verificación periódica
│   └── exporter.py     # Exportación a CSV
├── data/               # CSVs generados (ignorados por git)
├── tests/
├── .env                # Variables de entorno (no subir a git)
├── requirements.txt
├── Dockerfile
└── docker-compose.yml

Tecnologías

Herramienta Uso
requests HTTP requests a la API de Algolia
streamlit Dashboard interactivo
pandas Procesamiento de datos
python-dotenv Variables de entorno
apscheduler Scheduler de alertas
pytest Tests unitarios
Docker Empaquetado y despliegue

Instalación local

git clone https://github.com/SantyCano2022/price-scraper
cd price-scraper

python -m venv venv
source venv/bin/activate        # Linux/Mac
venv\Scripts\activate           # Windows

pip install -r requirements.txt

Configuración

Edita .env para ajustar parámetros (todos opcionales, tienen valores por defecto):

SEARCH_QUERY=laptop           # Qué buscar (default: laptop)
MAX_PAGES=5                   # Páginas a scrapear (default: 5)
REQUEST_DELAY=0.5             # Segundos entre requests (default: 0.5)
CHECK_INTERVAL_HOURS=6        # Frecuencia de alertas en horas (default: 6)
MIN_DISCOUNT_PCT=30           # Descuento mínimo para alertar (default: 30%)

# Gmail — notificaciones de descuentos
GMAIL_USER=tu@gmail.com
GMAIL_APP_PASSWORD=xxxx
NOTIFY_EMAIL=destino@gmail.com

Cómo correrlo

Dashboard local

streamlit run src/dashboard.py

Scheduler de alertas

python src/scheduler.py

Con Docker

docker-compose up --build

Tests

pytest tests/ -v --cov=src

Commits semánticos

Este proyecto usa Conventional Commits:

  • feat: nueva funcionalidad
  • fix: corrección de bug
  • refactor: mejora sin cambiar comportamiento
  • docs: cambios en documentación
  • test: agregar o modificar tests

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages