Saltar a contenido

Scraping — Documentación

Esta carpeta documenta el subsistema de scraping de Versus: las spiders de Scrapy, el pipeline de preguntas, la configuración y las guías para añadir nuevas fuentes.

Índice

Archivo Contenido
spiders.md Referencia de cada spider: fuente, datos extraídos, estado de integración
pipeline.md Arquitectura del pipeline: items, validación, deduplicación, persistencia en BD

Estructura del módulo

scraper/
├── versus_scraper/
│   ├── spiders/               # Una spider por fuente de datos
│   │   ├── rrss_spider.py
│   │   ├── beneficiosPeliculas_spider.py
│   │   ├── botaOro_spider.py
│   │   ├── datosMundiales_spider.py
│   │   ├── goleadorCopaMundial_spider.py
│   │   ├── goleador_spider.py
│   │   ├── palmares_spider.py
│   │   └── trofeoZarra_spider.py
│   ├── items.py               # Definición de los item types
│   ├── pipelines.py           # Pipeline principal (dedup + inserción en PostgreSQL)
│   └── settings.py            # Configuración global de Scrapy
└── requirements.txt

Ejecución rápida

# Desde scraper/
cd scraper

# Ejecutar una spider concreta
scrapy crawl rrss
scrapy crawl worldometers
scrapy crawl bota_de_oro

# Exportar a JSON sin pasar por la BD
scrapy crawl palmares_clubes -o palmares.json

Las spiders que usan Playwright (worldometers) requieren instalar los navegadores:

playwright install chromium

Variables de entorno requeridas

La conexión a PostgreSQL se configura mediante variables de entorno (ver .env.example):

DB_HOST=localhost
DB_PORT=5432
DB_NAME=versus
DB_USER=versus
DB_PASSWORD=versus

Estado de integración

Solo las spiders que emiten QuestionItem se persisten en la base de datos a través del pipeline. Las demás exportan a JSON/CSV directamente. Ver spiders.md para el estado de cada una.