Qué hay que hacer
Crear un crawler que extraiga y actualice automáticamente datos de fuentes
autorizadas (becas, certificados, oportunidades, etc.) y los sincronice
con la API estática, ejecutándose de forma quincenal via CI/CD.
Por qué
Actualmente los datos de la API se actualizan solo cuando alguien abre un
PR manualmente. Hay fuentes oficiales que publican convocatorias, fechas
límite y nuevas certificaciones de forma regular — mantenerlas actualizadas
a mano es inviable a largo plazo.
Implementación
- Lenguaje: Python con
httpx + BeautifulSoup o playwright para sitios con JS
- Un scraper por fuente, independientes entre sí
- Output: JSON validado contra el esquema de la API
- Ejecución: GitHub Actions con cron quincenal (
0 9 1,15 * *)
- Si hay cambios detectados → PR automático a la API con los datos nuevos
- Si una fuente falla → issue automático en el repo notificando el error
Flujo
GitHub Actions (quincenal)
→ ejecuta crawlers por fuente
→ valida JSON contra esquema de la API
→ compara con datos existentes
→ si hay cambios → abre PR automático a la API
→ si hay errores → abre issue automático en el repo
→ revisión humana antes de merge
Seguridad y ética
- Solo crawlear fuentes explícitamente autorizadas (lista en
crawlers/sources.yml)
- Respetar
robots.txt de cada fuente
- Rate limiting entre requests para no sobrecargar servidores
- Ningún dato personal o privado se extrae ni almacena
- User-agent identificable como bot del club
Estructura del repo
crawlers/
├── sources.yml # lista de fuentes autorizadas y configuración
├── delfin.py
├── youth_europa.py
├── oracle.py
├── icpc.py
└── utils/
├── validator.py # valida JSON contra esquema de la API
└── differ.py # detecta cambios vs datos existentes
.github/workflows/
└── crawler.yml # cron quincenal + apertura de PR/issue automático
Listo cuando...
Relaciones
- Depende de → Migración de datos a la API
- Relacionado con → CI/CD links rotos y recursos desactualizados
- Relacionado con → Sección de oportunidades nacionales e internacionales
- Relacionado con → Sección de becas y certificaciones
Qué hay que hacer
Crear un crawler que extraiga y actualice automáticamente datos de fuentes
autorizadas (becas, certificados, oportunidades, etc.) y los sincronice
con la API estática, ejecutándose de forma quincenal via CI/CD.
Por qué
Actualmente los datos de la API se actualizan solo cuando alguien abre un
PR manualmente. Hay fuentes oficiales que publican convocatorias, fechas
límite y nuevas certificaciones de forma regular — mantenerlas actualizadas
a mano es inviable a largo plazo.
Implementación
httpx+BeautifulSoupoplaywrightpara sitios con JS0 9 1,15 * *)Flujo
Seguridad y ética
crawlers/sources.yml)robots.txtde cada fuenteEstructura del repo
Listo cuando...
sources.ymlcon lista inicial de fuentes autorizadasREADMEdel crawler documenta cómo agregar una fuente nuevarobots.txtrespetado en todos los crawlersRelaciones