scraper para extraer la información del catálogo de certificados de todofp.es
Find a file
César Dans b206225e61 feat: add discovery and gradoc_all spiders for automatic certificate extraction
- Add discovery_spider.py to automatically discover all valid Grade C certificate IDs
- Add gradoc_all_spider.py for complete extraction (certificate + UCs + MFs)
- Add GradoCRelatedItem with fields for related certificates
- Update run.py to register new spiders
- Update README.md with new workflow documentation
2026-08-21 09:11:01 +02:00
todofp feat: add discovery and gradoc_all spiders for automatic certificate extraction 2026-08-21 09:11:01 +02:00
.gitignore Added entries for ignoring build archifacts into git repository 2026-07-08 10:03:44 +02:00
gradoc.csv removing re library dependence 2025-11-26 13:13:00 +01:00
gradoc_mfs.csv Updated csv files adding last certificates from 970 to 984 2026-07-08 12:07:41 +02:00
gradoc_mfs_970-985.csv Adds three new parameters to spiders: start id, end id and url base. Examples of partial extraction from id 970 to id 985 with updated data files. 2026-07-07 14:32:51 +02:00
gradoc_plain.csv Updated csv files adding last certificates from 970 to 984 2026-07-08 12:07:41 +02:00
gradoc_plain_970-985.csv Adds three new parameters to spiders: start id, end id and url base. Examples of partial extraction from id 970 to id 985 with updated data files. 2026-07-07 14:32:51 +02:00
gradoc_ucs.csv Updated csv files adding last certificates from 970 to 984 2026-07-08 12:07:41 +02:00
gradoc_ucs_970-985.csv Adds three new parameters to spiders: start id, end id and url base. Examples of partial extraction from id 970 to id 985 with updated data files. 2026-07-07 14:32:51 +02:00
pyproject.toml Fix build-backend in build-system 2026-07-08 10:00:08 +02:00
README.md feat: add discovery and gradoc_all spiders for automatic certificate extraction 2026-08-21 09:11:01 +02:00
scrapy.cfg First commit: a simple gradoc spider 2025-11-25 16:03:43 +01:00

todofp

Herramienta de web scraping construida con Scrapy para extraer información de los certificados de Grado C (técnico) de Formación Profesional del portal todofp.es, gestionado por el Ministerio de Educación de España.

Spiders disponibles

Spider Campos extraidos
gradoc Datos básicos del certificado (código, descripción, familia profesional, nivel)
gradoc_ucs Certificado + Unidades de Competencia
gradoc_mfs Certificado + Módulos Formativos
gradoc_plain Certificado + Unidades de Competencia + Módulos Formativos (completo)
gradoc_all Igual que gradoc_plain pero con soporte para IDs descubiertos
discovery Descubre automáticamente todos los IDs de certificados válidos

Campos comunes a todos los spiders

Campo Descripción
cert_id Identificador numérico del certificado (001985)
cert_code Código del certificado
cert_description Nombre del certificado
cert_grade Grado (C = técnico)
cert_level Nivel del certificado
family_code Código de la familia profesional
family_description Nombre de la familia profesional

Requisitos previos

  • Python 3.11 o superior
  • pip (gestor de paquetes de Python)

Instalación

pip install .

En modo desarrollo:

pip install -e .

Uso rápido

Tras instalar, ejecutar directamente desde cualquier directorio:

todofp gradoc -o gradoc.csv
todofp gradoc_ucs -s 100 -e 200 -o gradoc_ucs.csv
todofp gradoc_mfs -o gradoc_mfs.csv
todofp gradoc_plain -o gradoc_plain.csv

Flujo de trabajo completo: descubrir y extraer todos los certificados

# Paso 1: Descubrir todos los IDs de certificados válidos
todofp discovery -s 1 -e 1200

# Paso 2: Extraer todos los datos de los certificados descubiertos
todofp gradoc_all -s 1 -e 985 -o todos_los_certificados.csv

Opciones

Opción Descripción Valor por defecto
-s, --start ID del primer certificado a extraer 1
-e, --end ID del último certificado a extraer 985
-o, --output Fichero de salida (CSV) (salida a stdout)
-u, --urlbase URL base del sitio web https://www.todofp.es

Uso con Scrapy

También se pueden ejecutar los spiders directamente con scrapy crawl:

scrapy crawl gradoc -O gradoc.csv
scrapy crawl gradoc_ucs -a start=100 -a end=200 -O gradoc_ucs.csv

Nota: El parámetro -O sobreescribe el fichero de salida. Usar -o para añadir datos sin sobreescribir.

Estructura del proyecto

todofp/
├── scrapy.cfg
├── pyproject.toml
├── README.md
├── todofp/
│   ├── __init__.py
│   ├── items.py            # Definiciones de items Scrapy
│   ├── run.py              # CLI simplificado
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders/
│       ├── __init__.py
│       ├── base.py          # Clase base con lógica común
│       ├── gradoc_spider.py
│       ├── gradoc_ucs_spider.py
│       ├── gradoc_mfs_spider.py
│       ├── gradoc_plain_spider.py
│       ├── gradoc_all_spider.py   # Extracción completa
│       └── discovery_spider.py    # Descubrimiento de IDs
└── *.csv

Notas

  • El sitio web todofp.es establece un límite de 1 solicitud por segundo (DOWNLOAD_DELAY = 1 en settings.py), lo que hace que la extracción completa de ~985 certificados tarde aproximadamente 1520 minutos por spider.
  • Se recomienda ejecutar los spiders con ROBOTSTXT_OBEY = True (activado por defecto) para respetar las normas del sitio.
  • El spider discovery genera un fichero discovery_result.json con todos los IDs encontrados y sus datos básicos.